您的位置:首页 > 理论基础 > 数据结构算法

数据结构类型定义及基本操作汇总(三)--图的表示

2007-06-04 14:14 519 查看
图的三种基本表示: 邻接表,邻接矩阵和十字链表

//邻接表
#define Infinity INT_MAX
#define Max_Vertex_Num 20
typedef enum {DG,DN,AG,AN} GraphKind;
typedef struct ArcCell {
int arcweight;
//char *info;
}ArcCell, AdjMatrix[Max_Vertex_Num][Max_Vertex_Num];

typedef struct {
int vexs[Max_Vertex_num];
AdjMatrix arcs;
int vexnum,arcnum;
Graphkind kind;
}

//邻接矩阵
#define Max_Vertex_Num 20
typedef struct ArcNode{
int NodeNum;
int weight;
struct ArcNode *NextArc;
};

typedef struct VNode{
int vexdata;
struct ArcNode *firstarc;

} ArcList[Max_Vertex_Num];

typedef struct VArc{
ArcList VArray;
int VerNum,ArcNum;
GraphKind DG;
}AGraph;

//十字链表
typedef struct ArcNode{
int TailNodeNum,HeadNodeNum;
struct ArcNode *HeadNode,*TailNode;
int weight;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐