教學(xué)目的: 掌握?qǐng)D的二種存儲(chǔ)表示方法
教學(xué)重點(diǎn): 圖的數(shù)組表示及鄰接表表示法
教學(xué)難點(diǎn): 鄰接表表示法
授課內(nèi)容:
一、數(shù)組表示法
用兩個(gè)數(shù)組分別存儲(chǔ)數(shù)據(jù)元素(頂點(diǎn))的信息和數(shù)據(jù)元素之間的關(guān)系(邊或弧)的信息。
// 圖的數(shù)組(鄰接矩陣)存儲(chǔ)表示
#define INFINITY INT_MAX //大值無(wú)窮大
#define MAX_VERTEX_NUM 20 //大頂點(diǎn)個(gè)數(shù)
typedef enum{DG,DN,AG,AN} GraphKind;//有向圖,有向網(wǎng),無(wú)向圖,無(wú)向網(wǎng)
typedef struct ArcCell{
VRType adj; //VRType是頂點(diǎn)關(guān)系類(lèi)型。對(duì)無(wú)權(quán)圖,用1或0表示相鄰否,對(duì)帶權(quán)圖,則為權(quán)值類(lèi)型
InfoType *info; //該弧相關(guān)停息的指針
}ArcCell,AdjMatrix[max_vertex_num][max_vertex_num];
tpyedef struct{
VertexType vexs[MAX_VERTEX_NUM]; //頂點(diǎn)向量
AdjMatrix arcs; //鄰接矩陣
int vexnum,arcnum; //圖的當(dāng)前頂點(diǎn)數(shù)和弧數(shù)
GraphKind kind; //圖的種類(lèi)標(biāo)志
}MGraph;
教學(xué)重點(diǎn): 圖的數(shù)組表示及鄰接表表示法
教學(xué)難點(diǎn): 鄰接表表示法
授課內(nèi)容:
一、數(shù)組表示法
用兩個(gè)數(shù)組分別存儲(chǔ)數(shù)據(jù)元素(頂點(diǎn))的信息和數(shù)據(jù)元素之間的關(guān)系(邊或弧)的信息。
// 圖的數(shù)組(鄰接矩陣)存儲(chǔ)表示
#define INFINITY INT_MAX //大值無(wú)窮大
#define MAX_VERTEX_NUM 20 //大頂點(diǎn)個(gè)數(shù)
typedef enum{DG,DN,AG,AN} GraphKind;//有向圖,有向網(wǎng),無(wú)向圖,無(wú)向網(wǎng)
typedef struct ArcCell{
VRType adj; //VRType是頂點(diǎn)關(guān)系類(lèi)型。對(duì)無(wú)權(quán)圖,用1或0表示相鄰否,對(duì)帶權(quán)圖,則為權(quán)值類(lèi)型
InfoType *info; //該弧相關(guān)停息的指針
}ArcCell,AdjMatrix[max_vertex_num][max_vertex_num];
tpyedef struct{
VertexType vexs[MAX_VERTEX_NUM]; //頂點(diǎn)向量
AdjMatrix arcs; //鄰接矩陣
int vexnum,arcnum; //圖的當(dāng)前頂點(diǎn)數(shù)和弧數(shù)
GraphKind kind; //圖的種類(lèi)標(biāo)志
}MGraph;