大话数据结构——图的建立·无向图~邻接表~进阶~2020.7.9

暑假伊始,已是一个学期没有返校,学习难免有所懈怠,拖更数日,还望各位海涵。今天为大家带来《大话数据结构》中使用邻接表建立无向图的代码,供大家参考。此部分的代码非本人原创,而是参考了这本书上的代码。说实话,动手敲代码前,这一部分的内容我并没有完全理解,但开始敲之后,便有了个人理解,这部分的代码也就有所了解了。

所谓邻接表,是为了弥补邻接矩阵在空间上可能会出现浪费的不足而出现的一种数据结构,其大义是将图中的顶点,存储在一个一维数组中(一维数组的大小又编码人自己决定),一维数组中的每一个元素可以看作是一个结构,结构中包含了数据域与指针域,指针域指向边表结点,数据域存储信息。所谓边表结点,其也是一个结构,其中存放了边的权值,以及这条边所连接的顶点信息。显然,一个顶点我们可以由头数组的下标得知,另一个顶点,我们只需要储存它在头数组中的下标即可。别忘了,这是一个无向图,因此,在录入边及其信息时,要从头数组的两个顶点出发,举个例子,假如我们建立的是由i到j的一条边,不仅要在头数组中找到i,建立一条到j的边,也需要在头数组中找到j,建立一条到i的边。

详见下放的代码:

#include <iostream>
using namespace std;
typedef char VertexType;
typedef int EdgeType;
const int MAXVEX = 110;
typedef struct EdgeNode{
    //存储边表节点 
 int adjvex;    //邻接点域,存储该顶点对应的下标。 
 EdgeType weight;  //存储权值 
 struct E
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值