程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 鄰接表模板,鄰接模板

鄰接表模板,鄰接模板

編輯:C++入門知識

鄰接表模板,鄰接模板


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 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved