数据结构之图的邻接表

本文介绍了如何用C语言创建无向图的邻接表,包括顶点和边结点的结构定义,邻接表的创建、显示和销毁功能,以及查找顶点位置的函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#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);     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值