首页 新闻 会员 周边 捐助

C++用指针实现邻接表

0
[已解决问题] 解决于 2010-09-13 16:49

从某位老师的课件看到了如下的程序段。

其中第13行void ins(int x, Tnode &p),我感觉应该是void ins(int x,Tnode p)。请问大家那个是对的??

1 #include <iostream>
2  using namespace std;
3 const int maxv=10000;
4 struct Tnode{ //定义顶点类型
5 int c; //顶点编号
6 Tnode *next; //此点的邻接链表
7 };
8 //数组g表示每个顶点的邻接链表
9 //的链表头---哨兵
10 Tnode g[maxv] ;
11 int n,m,i,a,b;
12 Tnode *t;
13 void ins(int x, Tnode &p)
14 { //插入链表子过程
15 t=new(Tnode); t->c=x;
16 t->next=p.next;
17 p.next=t;
18 }
19 int main() {
20 cin >> n >> m;
21 //初始化邻接链表“哨兵”
22 for(i=1; i<=n; i++)
23 g[i].next=NULL;
24 for(i=0; i<m; i++)
25 { //读入边,插入邻接链表
26 cin>>a>>b;
27 ins(b,g[a]);
28 // ins(a,g[b]);//无向边时
29 }//

 

Sephiroth.L.的主页 Sephiroth.L. | 初学一级 | 园豆:200
提问于:2010-09-13 09:31
< >
分享
最佳答案
0

老师是对的,为什么的话,自己调试一下

嗷嗷 | 小虾三级 |园豆:757 | 2010-09-13 12:21
我是不是也可以写成这样: void ins(int x,tnode *p) { t=new(tnode); t->c=x; t->next=p->next; p->next=t; } int main() { ... ins(b,*g[a]); ... }
Sephiroth.L. | 园豆:200 (初学一级) | 2010-09-13 16:11
void ins(int x, Tnode *p) { //插入链表子过程 t=new(Tnode); t->c=x; t->next=p->next; p->next=t; } int main() { ins(b,&g[a]); }
嗷嗷 | 园豆:757 (小虾三级) | 2010-09-13 16:30
@嗷嗷:THX~果然还是基础不牢呃。
Sephiroth.L. | 园豆:200 (初学一级) | 2010-09-13 16:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册