鄰接表模板,鄰接模板
l
鄰接表的處理方法是這樣:
l
圖中頂點用一個一維數組存儲,當然,頂點也可以用單鏈表來存儲,不過數組可以較容易地讀取頂點信息,更加方便。
l
圖中每個頂點Vi的所有鄰接點構成一個線性表,由於鄰接點的個數不確定,所以我們選擇用單鏈表來存儲。
1 #include<iostream>
2 using namespace std;
3 struct node
4 {
5 int u;
6 int v;
7 int w;
8 int next;
9 }a[10001];
10 int head[1001];
11 int num=1;
12 void f(int p,int b,int c)
13 {
14 a[num].u=p;
15 a[num].v=b;
16 a[num].w=c;
17 a[num].next=head[p];
18 head[p]=num++;
19 }
20 int main()
21 {
22 int n,m;
23 cin>>n>>m;
24 for(int i=1;i<=n;i++)
25 head[i]=-1;
26 for(int i=1;i<=m;i++)
27 {
28 int p,b,c;
29 cin>>p>>b>>c;
30 f(p,b,c);
31 }
32
33 cout<<"****************************"<<endl;
34 for(int k=1;k<=n;k++)
35 {
36 int i=head[k];
37 cout<<"k:";
38 while(i!=-1)
39 {
40 cout<<"-->"<<a[i].v;
41 i=a[i].next;
42 }
43 cout<<"-->"<<-1<<" ";
44 cout<<endl;
45 }
46
47 return 0;
48 }