#include<stdlib.h>
#include<stdio.h>
#include<malloc.h>
#include<string.h>
typedef char VertexType[4];
typedef char InfoPtr;
typedef int VRType;
#define MaxSize 50 //顶点个数的最大值
typedef enum{DG,DN,UG,UN}GraphKind; //图的类型:有向图 , 有向网, 无向图和无向网
typedef struct ArcNode //边结点的类型定义
{
int adjvex; //弧指向的顶点的位置
InfoPtr *info; //与弧相关的信息
struct ArcNode *nextarc; //指向下一个与该结点相邻接的顶点
}ArcNode;
typedef struct VNode //头结点的类型定义
{
VertexType data; //用于存储顶点
ArcNode *firstarc; //指向第一个与该顶点邻接的顶点
}VNode, AdjList[MaxSize];
typedef struct //图的类型定义
{
AdjList vertex;// 表头结点数组
int vexnum, arcnum;//图的顶点数目与弧的数目
GraphKind kind;//图的类型
}AdjGraph;
//函数声明
int LocateVertex(AdjGraph G, VertexType v); //寻找图G中 顶点v的位置
void CreateGraph(AdjGraph *G); //创建图G的邻接表
void DisplayGraph(AdjGraph G); //输出图G
void DestroyGraph(AdjGraph *G); //销毁图G
int main()
{
AdjGraph G;
printf("采用邻接表创建无向图G: \n");
CreateGraph(&am
数据结构之图的邻接表
最新推荐文章于 2022-12-24 17:47:53 发布