算法导论第三版 22.1 图的表示 练习题答案全解析

本文详细介绍了图的两种表示方法——邻接链表和邻接矩阵,并针对相关算法进行了深入探讨。包括计算节点的出度和入度、完全二叉树的邻接矩阵转换、图的转换算法复杂度分析,以及在多图中去除冗余边的方法。同时,还讨论了邻接矩阵求通用汇点的算法和关联矩阵的含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 本章主要讲解了图的两种表示方法:邻接链表和邻接矩阵。

课后题:

1.给定有向图的邻接链表,多少时间才能算出每个结点的出度和入度?

 计算出度:

 ①为了计算一个结点的出度,我们需要枚举v结点所有的边,O(出度(v))。

②然后遍历每个结点计算出度,耗费时间为O(|E| + |V|),这里的|V|是必须有的(假设一个图没有边,还是要把所有的点遍历1遍)。

③如果在邻接链表中加入每个结点的边的个数,可以减少到O(|V|)。

计算入度:

计算入度只能遍历整个邻接链表,因此时间复杂度为O(|V)+|E|)。

2.给定一个七个结点的完全二叉树的邻接链表,请写出等价的邻接矩阵表示,这里假设结点的编号为从1~7。

 邻接链表:

1 →2→3

 2→4→5

 3→6→7

 4→2

 5→2

 6→3

 7→3

邻接矩阵 

(0 1 1 0 0 0 0

1 0 0 1 1 0 0

0 0 0 0 0 1 1

0 1 0 0 0 0 0

0 1 0 0 0 0 0

0 0 1 0 0 0 0

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值