關於鄰接表的陣列形式表現
阿新 • • 發佈:2018-12-01
鄰接表大致是一個由各個點指向其所連線的點的表。但是我們可以不將點指向點,可以將邊儲存,用點指向邊。
然後再用各個邊的標號做一個數組,再用這個陣列來記錄路徑。程式碼大概長這個樣子。
(參考大佬的部落格,地址如下https://www.cnblogs.com/ECJTUACM-873284962/p/6905416.html
(再附加兩張圖
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5using namespace std; 6 int u[100],v[100],w[100],first[100]={-1},next[100]={-1}; 7 int main() 8 { 9 for(int i=0;i<100;i++) 10 { 11 first[i]=-1; 12 next[i]=-1; 13 } 14 int vnum,snum,temp1,temp2,temp3; 15 cin>>vnum>>snum; 16 for(int i=0;i<snum;i++) 17 {18 cin>>u[i]>>v[i]>>w[i]; 19 int x=first[u[i]]; 20 next[i]=x; 21 first[u[i]]=i; 22 } 23 /* for(int i=0;i<vnum;i++) 24 { 25 int x=first[i]; 26 cout<<i; 27 while(x!=-1) 28 { 29 cout<<' '<<v[x];30 x=next[x]; 31 } 32 cout<<endl; 33 }*/ 34 return 0; 35 }