鄰接矩陣表示法表示圖
阿新 • • 發佈:2020-11-29
#include<iostream> #define MaxInt 32767 #define MVNum 100 using namespace std; typedef char VerTexType;//假設頂點的資料型別為字元型 typedef int ArcType;//假設便的權值型別為整型 typedef struct { VerTexType vexs[MVNum];//頂點表 ArcType arcs[MVNum][MVNum];//鄰接矩陣 int vexnum,arcnum;//圖的當前點數和邊數 }AMGraph; int LocateVex(AMGraph G,VerTexType v)//確定頂點在G中的位置,返回頂點陣列的下標 { for(int i = 0; i < G.vexnum; i++) if(v == G.vexs[i])return i; return -1; } void CreateUDN(AMGraph &G)//採用鄰接矩陣表示法建立無向網 { cin >> G.vexnum >> G.arcnum; for(int i = 0; i < G.vexnum; i++) cin >> G.vexs[i]; for(int i = 0; i < G.vexnum; i++) for(int j = 0; j < G.vexnum; j++) G.arcs[i][j] = MaxInt; for(int k = 0; k < G.arcnum; k++) { VerTexType v1,v2; ArcType w; cin >> v1 >> v2 >> w;//輸入一條邊依附的頂點及權值 int i = LocateVex(G,v1); int j = LocateVex(G,v2); G.arcs[i][j] = w; G.arcs[j][i] = w; } } int main() { }