图的数据结构定义
写代码:定义一个顺序存储的图(邻接矩阵实现)
写代码:定义一个链式存储的图(邻接表实现)自己设计一个不少于6个结点的带权无向图,并画出其邻接矩阵、邻接表的样子
自己设计一个不少于6个结点的带权有向图,并画出其邻接矩阵、邻接表的样子
1.顺序存储的图(邻接矩阵)
#define MaxVertexNum 100//顶点数目的最大值
typedef char VertexType;//顶点对应的数据类型
typedef int EdgeType;//边对应的数据类型
typedef struct{VertexType vex[MaxVertexNum];//顶点表EdgeType edge[MaxVertexNum][MaxVertexNum];//邻接矩阵,边表int vexnum,arcnum;//图的当前顶点数和边数 }MGraph;
2.链式存储的图(邻接表)
#define MaxVertexNum 100;//图中顶点数目的最大值
typedef struct ArcNode{//边表结点int adjvex;//该弧所指向的顶点的位置 struct ArcNode *nextarc;//指向下一条弧的指针//InfoType info;//网的边权值
}ArcNode;
typedef struct VNode{//顶点表结点 VertexType data;//顶点信息ArcNode *firstarc;//指向第一条依附该顶点的弧的指针}VNode,AdjList[MaxVertexNum];
typedef struct{AdjList vertices;//邻接表 int vexnum,arcnum;//图的顶点数和弧数
}ALGraph; //ALGraph是以邻接存储的图类型