数据结构邻接表 c语言的邻接表问题

当前位置:
> > 查看文章
图的存储结构(邻接表)- 数据结构和算法57
图的存储结构(邻接表)
让编程改变世界
Change the world by program
邻接表(无向图)
邻接矩阵看上去是个不错的选择,首先是容易理解,第二是索引和编排都很舒服~
但是我们也发现,对于边数相对顶点较少的图,这种结构无疑是存在对存储空间的极大浪费。
邻接表(有向图)
因此我们可以考虑另外一种存储结构方式,例如把数组与链表结合一起来存储,这种方式在图结构也适用,我们称为邻接表(AdjacencyList)。
邻接表的处理方法是这样:
图中顶点用一个一维数组存储,当然,顶点也可以用单链表来存储,不过数组可以较容易地读取顶点信息,更加方便。
图中每个顶点Vi的所有邻接点构成一个线性表,由于邻接点的个数不确定,所以我们选择用单链表来存储。
邻接表(无向图)
邻接表(有向图)
若是有向图,邻接表结构也是类似的,我们先来看下把顶点当弧尾建立的邻接表,这样很容易就可以得到每个顶点的出度:
但也有时为了便于确定顶点的入度或以顶点为弧头的弧,我们可以建立一个有向图的逆邻接表:
此时我们很容易就可以算出某个顶点的入度或出度是多少,判断两顶点是否存在弧也很容易实现。
邻接表(网)
对于带权值的网图,可以在边表结点定义中再增加一个数据域来存储权值即可:
邻接表(网)
作为一个课后作业给大家自己锻炼下,小甲鱼提供的参考答案仅供参考借鉴:
小甲鱼在干啥
如果您觉得小甲鱼的视频能够给您带来知识和快乐,您可以选择赞助我们,让我们可以持续为您推出更多精彩的原创编程教学^_^
手机用户打开支付宝钱包,扫描下方支付宝二维码即可:
电脑用户点击下方按钮即可跳转至支付宝转账页面:
感谢您对我们发展的支持和认可!
更多新鲜事儿
加载中……0被浏览62分享邀请回答该回答已被折叠 折叠原因:算法识别自动折叠02 条评论分享收藏感谢收起扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
数据结构的一道题1.一个有向图的邻接表和逆邻接表中表结点的个数一定相等这句话是不是正确的2.在单循环链表中设置尾指针比设置头指针好这句话是不是正确的
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
第一个问题:我的答案:正确理由:首先要明确建立“逆邻接表”的作用是为了方便计算入度.有向图每条弧对应唯一的弧头和弧尾.“逆邻接表”只是把“邻接表”中弧头和弧尾的次序换了,并不是一种新表,它和“邻接表”的唯一区别就是弧尾的nextarc指针指向弧头而已.所以节点数是相等的.(参考数据结构教材164页)第二个问题:我的答案:正确理由:尾指针是指向终端结点的指针,用它来表示单循环链表可以使得查找链表的开始结点和终端结点都很方便,设一带头结点的单循环链表,其尾指针为rear,则开始结点和终端结点的位置分别是rear->next->next 和 rear, 查找时间都是O(1).
为您推荐:
其他类似问题
扫描下载二维码数据结构重读 – 图的链式存储(邻接表)和BFS图遍历算法 | 四号程序员
Current ye@r *
Leave this field empty
Categories
Insert/edit link
Enter the destination URL
Open link in a new tab
Or link to existing content
No search term specified. Showing recent items.
Search or use up and down arrow keys to select an item. 上传我的文档
 下载
 收藏
粉丝量:74
该文档贡献者很忙,什么也没留下。
 下载此文档
《数据结构》上机实验报告—有向图的邻接表的建立及遍历
下载积分:1000
内容提示:《数据结构》上机实验报告—有向图的邻接表的建立及遍历
文档格式:DOC|
浏览次数:741|
上传日期: 14:00:32|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1000 积分
下载此文档
该用户还上传了这些文档
《数据结构》上机实验报告—有向图的邻接表的建立及
关注微信公众号

我要回帖

更多关于 数据结构 图的邻接表 的文章

 

随机推荐