数据结构之图的邻接表

#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
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值