數(shù)據(jù)結(jié)構(gòu)教程第二十八課圖的存儲結(jié)構(gòu)

字號:

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