图的邻接表的实现以及各种基本操作(附C++实现代码)

本文介绍了图的邻接表存储方式,详细阐述了邻接表的实现思想,包括顶点表节点和边表节点的定义。接着提供了C++代码实现,包括初始化图、查找顶点位置等基本操作。文章最后鼓励读者交流讨论。
摘要由CSDN通过智能技术生成

图的存储形式有很多,例如邻接矩阵,邻接表,多重邻接表,十字链表
这里将介绍图的邻接表存储形式:

邻接表的实现思想:

邻接表的概念我们就不再进行赘述,主要是将实现邻接表的实现思路捋一捋。

首先,邻接表存储的基本思想:对于图的每个顶点vi,我们将所有邻接vi的顶点连接成一个单链表,称为顶点vi的边表(对于有向图则称为出边表),所有边表的头指针和存储顶点信息的一维数组构成了顶点表。
而邻接表有着两种格式,一是顶点表节点,另外一种是边表节点。
顶点表节点由存储数据的数据域和存储边表头结点的指针域所组成。 边表节点则是由存储边的终点在顶点表中的下标的数据域和指向下一个节点的指针域组成。

接下来是具体代码的实现:
一、首先是边表节点的定义
typedef char VexTexType;
typedef int OtherInfo;

#define MaxVexNum 100 //定义最大顶点数为100

class ArcNode{//边
public:
	int adjVex;//该边所指向的顶点的位置
	ArcNode* next;//指向下一条边
	OtherInfo info;//其他信息,如权值
	ArcNode(int adjvex) {
		this->adjVex = adjvex;
		this->next = NULL;
	}
	//构造函数
	ArcNode(int adjvex, 
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值