資料結構(五)之圖的儲存方式
阿新 • • 發佈:2018-12-11
#define MAX 20 typedef struct ArcNode{ int adjvex;//該弧指向的頂點的位置 struct ArcNode *nextarc;//指向下一條弧的指標 int *info; //該弧相關資訊的指標 }ArcNode; typedef struct VNode{ int data; ArcNode *firstarc;//指向第一條依附該頂點的弧的指標 }VNode,AdjList[MAX]; typedef struct{ AdjList vertices; int vexnum,arcnum;//頂點數和邊數 int kind;//圖的種類標誌 }ALGraph;//鄰接表
#define MAX 20 typedef emnu{unvisited,visited} VisitIf; typedef struct EBox{ VisitIf mark; //訪問標記 int ivex,jvex; //該邊依附的兩個頂點的位置 struct EBox *ilink,*jlink;//分別指向依附這兩個頂點的下一條邊 int *info; //該邊的資訊指標 }EBox; typedef struct VexBox{ int data; EBox *firstedge; }VexBox; typedef struct{ VexBox adjmulist[MAX]; int vexnum,edgenum;//頂點數和邊數 }AMLGraph; //多重鄰接表
#define MAX 20 typedef struct ArcBox{ int tailvex,headvex; //弧的尾頂點和頭頂點的位置 struct ArcBox *hlink,*tlink; int *info; //該弧相關資訊的指標 }ArcBox; typedef struct VexNode{ int data; ArcBox *firstin,*firstout;//分別指向第一條入弧和出弧 }VexNode; typedef struct{ VexNode xlist[MAX]; int vexnum,arcnum;//頂點數和弧數 }OLGraph;//十字鄰接表