图论 邻接表和十字链表

邻接表可以用来表示有向图和无向图的入度或者出度,但是要求出入度和出度效率较低,但是王道书里都没有出过邻接表的代码题(可能要求太高不考?)但是要求会还原图和画出邻接表和十字链表。

例如下题:

一开始很懵啊,为什么连完第一个相邻的结点后直接在这个结点上面直接连上了下一个相邻的结点,后面搞明白了,这个链表只是个物理结构,而非逻辑上的结构,用这个物理结构会减少内存的消耗,具体怎么求看一下上面的转化题就会了

然后是十字链表啊

十字链表是出度邻接表和入度邻接表的结合,当然在计算机中也可以定义两个邻接表分别用来表示出度邻接表和入度邻接表,但是这样的内存利用率并不高,于是引入了十字链表,用一张表来结合入度邻接表和出度邻接表。

我看了网上好多讲解的视频,全是王道里面的那一张图,而且只讲了方法,啥0连0什么的,没有原理,晦涩难以理解,这里给出原理和方法:

对于一张有向图,先画出他的顶点表,然后先按照画邻接表的方式,画出他的出度邻接表,

如下:

然后在原有的出度邻接表的基础上,画出入度的邻接表,这个过程有点困难,因为我没有给出每个结构体的定义,先给出图如下:

最后这个就是十字链表了

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值