本章主要讲解了图的两种表示方法:邻接链表和邻接矩阵。
课后题:
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