邻接表代码实现

本文介绍了使用C语言实现邻接表数据结构的过程,包括结构体定义、初始化、基本操作和主函数。适合初学者参考,欢迎指出错误。
摘要由CSDN通过智能技术生成

结构体定义

//边表结点
typedef struct ArcNode {
	int adjvex;//存储该弧指向顶点值
	struct ArcNode* next;//下一条弧指针
}Arcnode;
//顶点表结点
typedef struct VNode {
	int data;//顶点数据域
	ArcNode* first;//顶邻接的第一条边
}VNode,AdjList[MaxVertexNum];
//创建邻接表
typedef struct {
	AdjList vertices;//邻接表
	int vexnum, arcnum;//顶点数和弧数
}ALGraph;

初始化

void InitALGraph(ALGraph* A,int vexnum){
	A->vexnum = vexnum;//初始顶点数
	A->arcnum = 0;//初始弧数为0
	for (int i = 0; i < MaxVertexNum; i++)
	{
		A->vertices[i].data = i;//顶点由0开始编号
		A->vertices[i].first = NULL;//初始每个顶点指针域为NULL
	}
}

基本操作

 

bool AddEdge(ALGraph* A, int v1, int v2)
{
	Arcnode* p = (Arcnode*)malloc(sizeof(Arcnode));
	p->adjvex = v2;
	p->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值