(完整word版)数据结构 第六章 图 练习题及答案详细解析(精华版)

合集下载

数据结构与算法第6章图答案

数据结构与算法第6章图答案

第 6 章图课后习题讲解1. 填空题⑴设无向图G中顶点数为n,则图G至少有()条边,至多有()条边;若G为有向图,则至少有()条边,至多有()条边。

【解答】0,n(n-1)/2,0,n(n-1)【分析】图的顶点集合是有穷非空的,而边集可以是空集;边数达到最多的图称为完全图,在完全图中,任意两个顶点之间都存在边。

⑵任何连通图的连通分量只有一个,即是()。

【解答】其自身⑶图的存储结构主要有两种,分别是()和()。

【解答】邻接矩阵,邻接表【分析】这是最常用的两种存储结构,此外,还有十字链表、邻接多重表、边集数组等。

⑷已知无向图G的顶点数为n,边数为e,其邻接表表示的空间复杂度为()。

【解答】O(n+e)【分析】在无向图的邻接表中,顶点表有n个结点,边表有2e个结点,共有n+2e个结点,其空间复杂度为O(n+2e)=O(n+e)。

⑸已知一个有向图的邻接矩阵表示,计算第j个顶点的入度的方法是()。

【解答】求第j列的所有元素之和⑹有向图G用邻接矩阵A[n][n]存储,其第i行的所有元素之和等于顶点i的()。

【解答】出度⑺图的深度优先遍历类似于树的()遍历,它所用到的数据结构是();图的广度优先遍历类似于树的()遍历,它所用到的数据结构是()。

【解答】前序,栈,层序,队列⑻对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(),利用Kruskal 算法求最小生成树的时间复杂度为()。

【解答】O(n2),O(elog2e)【分析】Prim算法采用邻接矩阵做存储结构,适合于求稠密图的最小生成树;Kruskal算法采用边集数组做存储结构,适合于求稀疏图的最小生成树。

⑼如果一个有向图不存在(),则该图的全部顶点可以排列成一个拓扑序列。

【解答】回路⑽在一个有向图中,若存在弧、、,则在其拓扑序列中,顶点vi, vj, vk的相对次序为()。

【解答】vi, vj, vk【分析】对由顶点vi, vj, vk组成的图进行拓扑排序。

数据结构第六章树和二叉树习题及答案

数据结构第六章树和二叉树习题及答案

习题六树和二叉树•、单项选择题1. 以下说法错误的是()A. 树形结构的特点是一个结点可以有多个直接前趋B. 线性结构中的一个结点至多只有一个直接后继C. 树形结构可以表达(组织)更复杂的数据D. 树(及一切树形结构)是一种”分支层次”结构E. 任何只含一个结点的集合是一棵树 2. 下列说法中正确的是()7. 一棵完全二叉树上有1001个结点,其中叶子结点的个数是()A. 250 B . 500 C . 254 D . 505 E .以上答案都不对 8. 设给定权值总数有n 个,其哈夫曼树的结点总数为() A.不确定 B . 2n C . 2n+1 D . 2n-19. 二叉树的第I 层上最多含有结点数为()in i-i i| |-1 |-1 | A. 2 B . 2 -1C. 2 D. 2 -110. -•棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有()结点A. 2h B . 2h-1 C . 2h+1 D . h+111.利用二叉链表存储树,则根结点的右指针是()。

A.指向最左孩了B•指向最右孩了ABCDEF 中序遍历结果 CBAEDF 则后序遍历的结 为 果3.T5. A. B. C. D. (A. B. C. D. A.任何一棵二叉树中至少有一个结点的度为2 任何一棵二叉树中每个结点的度都为2 任何一棵二叉树屮的度肯定等于2 任何一棵二叉树中的度可以小于2讨论树、森林和二叉树的关系,目的是为 )借助二叉树上的运算方法去实现对树的一些运算 将树、森林按二叉树的存储方式进行存储 将树、森林转换成二叉树体现一种技巧,没有什么实际意义4.树最适合用来表示 有序数据元素 DC.元素之间具有分支层次关系的数据若一-棵二叉树具有10个度为2的结点,5个度为1的结点,A. 9 B . 11 C・15 D .不确定() B .无序数据元素 .元素之间无联系的数据 则度为0的结点个数是(6.一,第二,第三棵树的结点个数分别为对应的二叉树根结点的右子树上的结点个数是(设森林F 中有三棵树,第 M1, M2和M3与森林FA. M1 B . M1+M2 C . M3 D .M2+M312.已知一棵二叉树的前序遍历结果为A. CBEFDA B . FEDCBAC . CBEDFAD ・不定13.已知某二叉树的后序遍历序列是()°A. acbed B decab C • deabc D.cedbaA. 每个结点至多有两棵子树的树B. 哈夫曼树C. 每个结点至多有两棵子树的有序树D. 每个结点只有一棵右子树E. 以上答案都不对17. 一棵左右子树均不空的二叉树在先序线索化后,其中空的链域的个数是: ()A. 0B. 1C. 2D.不确定C. {00,010,0110,1000} D . {b,c,aa,ac,aba,abb,abc}22. 一棵有n 个结点的二叉树,按层次从上到下,同一层从左到右顺序存储在一维数组 A[1..n]中,则二叉树屮第i 个结点( i 从1开始用上述方法编号)的右孩子在数组A 屮的位置是()A. A[2i](2i<=n)B .A[2i+1](2i+1<=n)C. A[i-2]D•条件不充分,无法确定23、以下说法错误的是()A. 哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近。

北邮数据结构第六章答案详解 图(1)

北邮数据结构第六章答案详解 图(1)

1
5
1
54 3
42
5 66
图 6-8 图 G 答案:根据不同算法构造的最小生成树如图 6-9 所示的图(a)和(b)
2

⑤ 5
1

4 3


6
2

③ 5
1

4 3


6
(a) Prim 生成树
(b) Kruskal 生成树
图 6-9 最小生成树
5、算法设计
(1)以邻接表为存储结构,设计实现深度优先遍历的非递归算法。
int top = -1; cout<<v<<’\t’; bVisited[v] = true; stack[++top] = v;
//访问结点 v //设置访问标记 //结点 v 入栈
while (top!=-1)
{
v=stack[top];
ArcNode<T> *p = adjlist[v]. firstarc; ①
)
A.1
B. n/2
C.n-1
D.n
解析:若超过 n-1,则路径中必存在重复的顶点
答案:C
(5) 若一个图中包含有 k 个连通分量,若按照深度优先搜索的方法访问所有顶点,则必
须调用(
)次深度优先搜索遍历的算法。
A.k
B.1
C.k-1
D.k+1
解析:一次深度优先搜索可以访问一个连通分量中的所有结点,因此 k 个连通分量需要 调用 k 次深度优先遍历算法。

} if (p==NULL) top--;
⑤//若是找不到未访问的结点,出栈

《数据结构(C语言版 第2版)》(严蔚敏 著)第六章练习题答案

《数据结构(C语言版 第2版)》(严蔚敏 著)第六章练习题答案

《数据结构(C语言版第2版)》(严蔚敏著)第六章练习题答案第6章图1.选择题(1)在一个图中,所有顶点的度数之和等于图的边数的()倍。

A.1/2B.1C.2D.4答案:C(2)在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的()倍。

A.1/2B.1C.2D.4答案:B解释:有向图所有顶点入度之和等于所有顶点出度之和。

(3)具有n个顶点的有向图最多有()条边。

A.n B.n(n-1)C.n(n+1)D.n2答案:B解释:有向图的边有方向之分,即为从n个顶点中选取2个顶点有序排列,结果为n(n-1)。

(4)n个顶点的连通图用邻接距阵表示时,该距阵至少有()个非零元素。

A.n B.2(n-1)C.n/2D.n2答案:B所谓连通图一定是无向图,有向的叫做强连通图连通n个顶点,至少只需要n-1条边就可以了,或者说就是生成树由于无向图的每条边同时关联两个顶点,因此邻接矩阵中每条边被存储了两次(也就是说是对称矩阵),因此至少有2(n-1)个非零元素(5)G是一个非连通无向图,共有28条边,则该图至少有()个顶点。

A.7B.8C.9D.10答案:C解释:8个顶点的无向图最多有8*7/2=28条边,再添加一个点即构成非连通无向图,故至少有9个顶点。

(6)若从无向图的任意一个顶点出发进行一次深度优先搜索可以访问图中所有的顶点,则该图一定是()图。

A.非连通B.连通C.强连通D.有向答案:B解释:即从该无向图任意一个顶点出发有到各个顶点的路径,所以该无向图是连通图。

(7)下面()算法适合构造一个稠密图G的最小生成树。

A.Prim算法B.Kruskal算法C.Floyd算法D.Dijkstra算法答案:A解释:Prim算法适合构造一个稠密图G的最小生成树,Kruskal算法适合构造一个稀疏图G的最小生成树。

(8)用邻接表表示图进行广度优先遍历时,通常借助()来实现算法。

A.栈 B.队列 C.树D.图答案:B解释:广度优先遍历通常借助队列来实现算法,深度优先遍历通常借助栈来实现算法。

数据结构第六章习题答案

数据结构第六章习题答案

删除40 删除70 删除60struct node { int data;struct node *lchild, *rchild;};typedef struct node NODE;NODE *create_tree(a,i,j)int a[ ],i,j;{NODE *p;int k;if(i>j) return(NULL);k=(i+j)/2;p=(NODE *)malloc(sizeof(NODE));p->data=a[k];p->lchild=create_tree(a,i,k-1);p->rchild=create_tree(a,k+1,j);return(p);}6. 3int check(root)NODE *root;{int x;if(root==NULL)return(0);if(root->data<root->rchild->data&&root->data>root->lchild->data) {x=check(root->rchild);if(!x) return(check(root->lchild));}return(1);}6. 4int height(root)NODE *root;{int h,k;if(root==NULL)return(-1);else if(root->lchild==NULL&&root->rchild==NULL)return(0);elseh=height(root->lchild);k=height(root->rchild);if(h>k)return(h+1);elsereturn(k+1);}}6. 5#include “math.h”int check_beltree(root)NODE *root;{int a;if(root==NULL)return(1);if(check_beltree(root->lchild)==0||check_beltree(root->rchild)==0) return(0);a=abs(height(root->rchild)-height(root->lchild)); //上题函数if(a<=1)return(1);}6.76.8结点k1 k2 k3 k4 k5结点值10 30 50 70 90相对使用频率(pi)p1 p2 p3 p4 p55 6 3 7 4外部结点使用频率(qi) q0 q1 q2 q3 q4 q54 2 1 2 3 4 本题的分析与计算,请参考“习题6.8”(Excel表),最后结果为:。

数据结构课后习题答案第六章

数据结构课后习题答案第六章

第六章树和二叉树(下载后用阅读版式视图或web版式可以看清)习题一、选择题1.有一“遗传”关系:设x是y的父亲,则x可以把它的属性遗传给y。

表示该遗传关系最适合的数据结构为( )。

A.向量B.树C图 D.二叉树2.树最合适用来表示( )。

A.有序数据元素 B元素之间具有分支层次关系的数据C无序数据元素 D.元素之间无联系的数据3.树B的层号表示为la,2b,3d,3e,2c,对应于下面选择的( )。

A. la (2b (3d,3e),2c)B. a(b(D,e),c)C. a(b(d,e),c)D. a(b,d(e),c)4.高度为h的完全二叉树至少有( )个结点,至多有( )个结点。

A. 2h_lB.h C.2h-1 D. 2h5.在一棵完全二叉树中,若编号为f的结点存在右孩子,则右子结点的编号为( )。

A. 2iB. 2i-lC. 2i+lD. 2i+26.一棵二叉树的广义表表示为a(b(c),d(e(,g(h)),f)),则该二叉树的高度为( )。

A.3B.4C.5D.67.深度为5的二叉树至多有( )个结点。

A. 31B. 32C. 16D. 108.假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为( )个。

A. 15B. 16C. 17D. 479.题图6-1中,( )是完全二叉树,( )是满二叉树。

1 / 1710.在题图6-2所示的二叉树中:(1)A结点是A.叶结点 B根结点但不是分支结点C根结点也是分支结点 D.分支结点但不是根结点(2)J结点是A.叶结点 B.根结点但不是分支结点C根结点也是分支结点 D.分支结点但不是根结点(3)F结点的兄弟结点是A.EB.D C.空 D.I(4)F结点的双亲结点是A.AB.BC.CD.D(5)树的深度为A.1B.2C.3D.4(6)B结点的深度为A.1B.2C.3D.4(7)A结点所在的层是A.1B.2C.3D.411.在一棵具有35个结点的完全二叉树中,该树的深度为( )。

数据结构第六章图练习题及答案详细解析(精华版)

数据结构第六章图练习题及答案详细解析(精华版)

数据结构第六章图练习题及答案详细解析(精华版)第一篇:数据结构第六章图练习题及答案详细解析(精华版) 图1.填空题⑴ 设无向图G中顶点数为n,则图G至少有()条边,至多有()条边;若G为有向图,则至少有()条边,至多有()条边。

【解答】0,n(n-1)/2,0,n(n-1)【分析】图的顶点集合是有穷非空的,而边集可以是空集;边数达到最多的图称为完全图,在完全图中,任意两个顶点之间都存在边。

⑵ 任何连通图的连通分量只有一个,即是()。

【解答】其自身⑶ 图的存储结构主要有两种,分别是()和()。

【解答】邻接矩阵,邻接表【分析】这是最常用的两种存储结构,此外,还有十字链表、邻接多重表、边集数组等。

⑷ 已知无向图G的顶点数为n,边数为e,其邻接表表示的空间复杂度为()。

【解答】O(n+e)【分析】在无向图的邻接表中,顶点表有n个结点,边表有2e个结点,共有n+2e个结点,其空间复杂度为O(n+2e)=O(n+e)。

⑸ 已知一个有向图的邻接矩阵表示,计算第j个顶点的入度的方法是()。

【解答】求第j列的所有元素之和⑹ 有向图G用邻接矩阵A[n][n]存储,其第i行的所有元素之和等于顶点i的()。

【解答】出度⑺ 图的深度优先遍历类似于树的()遍历,它所用到的数据结构是();图的广度优先遍历类似于树的()遍历,它所用到的数据结构是()。

【解答】前序,栈,层序,队列⑻ 对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(),利用Kruskal算法求最小生成树的时间复杂度为()。

【解答】O(n2),O(elog2e)【分析】Prim算法采用邻接矩阵做存储结构,适合于求稠密图的最小生成树;Kruskal算法采用边集数组做存储结构,适合于求稀疏图的最小生成树。

⑼ 如果一个有向图不存在(),则该图的全部顶点可以排列成一个拓扑序列。

【解答】回路⑽ 在一个有向图中,若存在弧、、,则在其拓扑序列中,顶点vi, vj, vk的相对次序为()。

数据结构答案第6章

数据结构答案第6章

数据结构答案第6章第6章数据结构答案1. 栈的应用栈是一种常见的数据结构,其特点是先进后出。

下面是一些关于栈的应用场景。

1.1 函数调用栈在程序中,每当一个函数被调用时,相关的变量和状态信息会被存储在一个称为函数调用栈的栈中。

1.2 表达式求值栈也常用于表达式求值,特别是中缀表达式转后缀表达式的过程中。

通过使用栈,我们可以很方便地进行算术运算。

1.3 逆序输出如果我们需要逆序输出一段文本、字符串或者其他数据,可以使用栈来实现。

将数据依次压入栈中,然后再逐个弹出即可。

2. 队列的实现与应用队列是另一种常见的数据结构,其特点是先进先出。

下面是一些关于队列的实现和应用。

2.1 数组实现队列队列可以使用数组来实现。

我们可以使用两个指针分别指向队列的前端和后端,通过移动指针来实现入队和出队的操作。

2.2 链表实现队列队列还可以使用链表来实现。

我们可以使用一个指针指向队列的头部,并在尾部添加新元素。

通过移动指针来实现出队操作。

2.3 广度优先搜索(BFS)队列常用于广度优先搜索算法。

在BFS中,我们需要按照层级来访问节点。

使用队列可以帮助我们按照顺序存储和访问节点。

3. 树的遍历和应用树是一种非常重要的数据结构,在计算机科学中应用广泛。

下面是一些关于树的遍历和应用的介绍。

3.1 深度优先搜索(DFS)深度优先搜索是树的一种遍历方式。

通过递归或者使用栈的方式,可以按照深度优先的顺序遍历树的所有节点。

3.2 广度优先搜索(BFS)广度优先搜索也可以用于树的遍历。

通过使用队列来保存要访问的节点,可以按照层级的顺序遍历树。

3.3 二叉搜索树二叉搜索树是一种特殊的二叉树,它的每个节点的值都大于左子树中的值,小于右子树中的值。

这种结构可以用于高效地进行数据查找。

4. 图的表示与遍历图是由节点和边组成的一种数据结构。

下面是一些关于图的表示和遍历的说明。

4.1 邻接矩阵表示法邻接矩阵是一种常见的图的表示方法。

使用一个二维数组来表示节点之间的连接关系。

【免费下载】数据结构 第6章习题答案

【免费下载】数据结构 第6章习题答案

4 5 3 (3)
(注:合并值应排在叶子值之后)
1
2
(注:原题为选择题:A.32
B.33
C.34
D.15)
三、单项选择题(每小题 1 分,共 11 分)
( C )1. 不含任何结点的空树

(A)是一棵树;
(B)是一棵二叉树;
(C)是一棵树也是一棵二叉树;
(D)既不是树也不是二叉树
答:以前的标答是 B,因为那时树的定义是 n≥1
空指针。 (正确。用二叉链表存储包含 n 个结点的二叉树,结点共有 2n 个链域。由于二叉树中,除根结点外,每 一个结点有且仅有一个双亲,所以只有 n-1 个结点的链域存放指向非空子女结点的指针,还有 n+1 个空指 针。)即有后继链接的指针仅 n-1 个。 ( √ )10. 〖01 年考研题〗具有 12 个结点的完全二叉树有 5 个度为 2 的结点。
,而 N 的右子女是它在原树里对应结点的 D 。
供选择的答案
A: ①是特殊的树 ②不是树的特殊形式 ③是两棵树的总称 ④有是只有二个根结点的树形结构
B: ①左子结点 ② 右子结点 ③ 左子结点或者没有右子结点 ④ 兄弟
C~D: ①最左子结点
② 最右子结点 ③ 最邻近的右兄弟
④ 最邻近的左兄弟
⑤ 最左的兄弟 ⑥ 最右的兄弟
答案:A=
B=
C=
D=
答案:ABCDE=2,1,1,3
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根保通据护过生高管产中线工资敷艺料设高试技中卷术资配,料置不试技仅卷术可要是以求指解,机决对组吊电在顶气进层设行配备继置进电不行保规空护范载高与中带资负料荷试下卷高总问中体题资配,料置而试时且卷,可调需保控要障试在各验最类;大管对限路设度习备内题进来到行确位调保。整机在使组管其高路在中敷正资设常料过工试程况卷中下安,与全要过,加度并强工且看作尽护下可关都能于可地管以缩路正小高常故中工障资作高料;中试对资卷于料连继试接电卷管保破口护坏处进范理行围高整,中核或资对者料定对试值某卷,些弯审异扁核常度与高固校中定对资盒图料位纸试置,.卷编保工写护况复层进杂防行设腐自备跨动与接处装地理置线,高弯尤中曲其资半要料径避试标免卷高错调等误试,高方要中案求资,技料编术试5写交卷、重底保电要。护气设管装设备线置备4高敷动调、中设作试电资技,高气料术并中课3试中且资件、卷包拒料中管试含绝试调路验线动卷试敷方槽作技设案、,术技以管来术及架避系等免统多不启项必动方要方式高案,中;为资对解料整决试套高卷启中突动语然过文停程电机中气。高课因中件此资中,料管电试壁力卷薄高电、中气接资设口料备不试进严卷行等保调问护试题装工,置作合调并理试且利技进用术行管,过线要关敷求运设电行技力高术保中。护资线装料缆置试敷做卷设到技原准术则确指:灵导在活。分。对线对于盒于调处差试,动过当保程不护中同装高电置中压高资回中料路资试交料卷叉试技时卷术,调问应试题采技,用术作金是为属指调隔发试板电人进机员行一,隔变需开压要处器在理组事;在前同发掌一生握线内图槽部纸内故资,障料强时、电,设回需备路要制须进造同行厂时外家切部出断电具习源高题高中电中资源资料,料试线试卷缆卷试敷切验设除报完从告毕而与,采相要用关进高技行中术检资资查料料和试,检卷并测主且处要了理保解。护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

数据结构第6章习题答案

数据结构第6章习题答案

第6章树和二叉树习题解答一、下面是有关二叉树的叙述,请判断正误(每小题1分,共10分)(√)1. 若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。

(×)2.二叉树中每个结点的两棵子树的高度差等于1。

(√)3.二叉树中每个结点的两棵子树是有序的。

(×)4.二叉树中每个结点有两棵非空子树或有两棵空子树。

(×)5.二叉树中每个结点的关键字值大于其左非空子树(若存在的话)所有结点的关键字值,且小于其右非空子树(若存在的话)所有结点的关键字值。

(应当是二叉排序树的特点)(×)6.二叉树中所有结点个数是2k-1-1,其中k是树的深度。

(应2i-1)(×)7.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。

(×)8.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i—1个结点。

(应2i-1)(√)9.用二叉链表法(link-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。

(正确。

用二叉链表存储包含n个结点的二叉树,结点共有2n个链域。

由于二叉树中,除根结点外,每一个结点有且仅有一个双亲,所以只有n-1个结点的链域存放指向非空子女结点的指针,还有n+1个空指针。

)即有后继链接的指针仅n-1个。

(√)10. 〖01年考研题〗具有12个结点的完全二叉树有5个度为2的结点。

最快方法:用叶子数=[n/2]=6,再求n2=n0-1=5二、填空(每空1分,共15分)1.由3个结点所构成的二叉树有5种形态。

2. 【计算机研2000】一棵深度为6的满二叉树有n1+n2=0+ n2= n0-1=31 个分支结点和26-1 =32个叶子。

注:满二叉树没有度为1的结点,所以分支结点数就是二度结点数。

3.一棵具有257个结点的完全二叉树,它的深度为9。

(注:用⎣ log2(n) ⎦+1= ⎣ 8.xx ⎦+1=94.【全国专升本统考题】设一棵完全二叉树有700个结点,则共有350个叶子结点。

数据结构第六章图理解练习知识题及答案解析详细解析(精华版)

数据结构第六章图理解练习知识题及答案解析详细解析(精华版)

图1. 填空题⑴设无向图G中顶点数为n,则图G至少有()条边,至多有()条边;若G为有向图,则至少有()条边,至多有()条边。

【解答】0,n(n-1)/2,0,n(n-1)【分析】图的顶点集合是有穷非空的,而边集可以是空集;边数达到最多的图称为完全图,在完全图中,任意两个顶点之间都存在边。

⑵任何连通图的连通分量只有一个,即是()。

【解答】其自身⑶图的存储结构主要有两种,分别是()和()。

【解答】邻接矩阵,邻接表【分析】这是最常用的两种存储结构,此外,还有十字链表、邻接多重表、边集数组等。

⑷已知无向图G的顶点数为n,边数为e,其邻接表表示的空间复杂度为()。

【解答】O(n+e)【分析】在无向图的邻接表中,顶点表有n个结点,边表有2e个结点,共有n+2e个结点,其空间复杂度为O(n+2e)=O(n+e)。

⑸已知一个有向图的邻接矩阵表示,计算第j个顶点的入度的方法是()。

【解答】求第j列的所有元素之和⑹有向图G用邻接矩阵A[n][n]存储,其第i行的所有元素之和等于顶点i的()。

【解答】出度⑺图的深度优先遍历类似于树的()遍历,它所用到的数据结构是();图的广度优先遍历类似于树的()遍历,它所用到的数据结构是()。

【解答】前序,栈,层序,队列⑻对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(),利用Kruskal 算法求最小生成树的时间复杂度为()。

【解答】O(n2),O(elog2e)【分析】Prim算法采用邻接矩阵做存储结构,适合于求稠密图的最小生成树;Kruskal算法采用边集数组做存储结构,适合于求稀疏图的最小生成树。

⑼如果一个有向图不存在(),则该图的全部顶点可以排列成一个拓扑序列。

【解答】回路⑽在一个有向图中,若存在弧、、,则在其拓扑序列中,顶点vi, vj, vk的相对次序为()。

【解答】vi, vj, vk【分析】对由顶点vi, vj, vk组成的图进行拓扑排序。

数据结构与算法第六章课后答案第六章 树和二叉树

数据结构与算法第六章课后答案第六章  树和二叉树

第6章 树和二叉树(参考答案)6.1(1)根结点a6.2三个结点的树的形态: 三个结点的二叉树的形态:(1) (1) (2) (4) (5)6.3 设树的结点数是n ,则n=n0+n1+n2+……+nm+ (1)设树的分支数为B ,有n=B+1n=1n1+2n2+……+mnm+1 (2)由(1)和(2)有:n0=n2+2n3+……+(m-1)nm+16.4(1) k i-1 (i 为层数)(2) (n-2)/k+1(3) (n-1)*k+i+1(4) (n-1)%k !=0; 其右兄弟的编号 n+16.5(1)顺序存储结构注:#为空结点6.6(1) 前序 ABDGCEFH(2) 中序 DGBAECHF(3) 后序 GDBEHFCA6.7(1) 空二叉树或任何结点均无左子树的非空二叉树(2) 空二叉树或任何结点均无右子树的非空二叉树(3) 空二叉树或只有根结点的二叉树6.8int height(bitree bt)// bt是以二叉链表为存储结构的二叉树,本算法求二叉树bt的高度{ int bl,br; // 局部变量,分别表示二叉树左、右子树的高度if (bt==null) return(0);else { bl=height(bt->lchild);br=height(bt->rchild);return(bl>br? bl+1: br+1); // 左右子树高度的大者加1(根) }}// 算法结束6.9void preorder(cbt[],int n,int i);// cbt是以完全二叉树形式存储的n个结点的二叉树,i是数// 组下标,初始调用时为1。

本算法以非递归形式前序遍历该二叉树{ int i=1,s[],top=0; // s是栈,栈中元素是二叉树结点在cbt中的序号 // top是栈顶指针,栈空时top=0if (n<=0) { printf(“输入错误”);exit(0);}while (i<=n ||top>0){ while(i<=n){visit(cbt[i]); // 访问根结点if (2*i+1<=n) s[++top]=2*i+1; //若右子树非空,其编号进栈i=2*i;// 先序访问左子树}if (top>0) i=s[top--]; // 退栈,先序访问右子树} // END OF while (i<=n ||top>0)}// 算法结束//以下是非完全二叉树顺序存储时的递归遍历算法,“虚结点”用‘*’表示void preorder(bt[],int n,int i);// bt是以完全二叉树形式存储的一维数组,n是数组元素个数。

数据结构考研试题精选及答案第6章 树和二叉树答案

数据结构考研试题精选及答案第6章  树和二叉树答案

第6章树和二叉树部分答案解释如下。

12. 由二叉树结点的公式:n=n0+n1+n2=n0+n1+(n0-1)=2n0+n1-1,因为n=1001,所以1002=2n0+n1,在完全二叉树树中,n1只能取0或1,在本题中只能取0,故n=501,因此选E。

42.前序序列是“根左右”,后序序列是“左右根”,若要这两个序列相反,只有单支树,所以本题的A和B均对,单支树的特点是只有一个叶子结点,故C是最合适的,选C。

A或B 都不全。

由本题可解答44题。

47. 左子树为空的二叉树的根结点的左线索为空(无前驱),先序序列的最后结点的右线索为空(无后继),共2个空链域。

52.线索二叉树是利用二叉树的空链域加上线索,n个结点的二叉树有n+1个空链域。

部分答案解释如下。

6.只有在确定何序(前序、中序、后序或层次)遍历后,遍历结果才唯一。

19.任何结点至多只有左子树的二叉树的遍历就不需要栈。

24. 只对完全二叉树适用,编号为i的结点的左儿子的编号为2i(2i<=n),右儿子是2i+1(2i+1<=n)37. 其中序前驱是其左子树上按中序遍历的最右边的结点(叶子或无右子女),该结点无右孩子。

38 . 新插入的结点都是叶子结点。

42. 在二叉树上,对有左右子女的结点,其中序前驱是其左子树上按中序遍历的最右边的结点(该结点的后继指针指向祖先),中序后继是其右子树上按中序遍历的最左边的结点(该结点的前驱指针指向祖先)。

44.非空二叉树中序遍历第一个结点无前驱,最后一个结点无后继,这两个结点的前驱线索和后继线索为空指针。

三.填空题1.(1)根结点(2)左子树(3)右子树2.(1)双亲链表表示法(2)孩子链表表示法(3)孩子兄弟表示法3.p->lchild==null && p->rchlid==null 4.(1) ++a*b3*4-cd (2)18 5.平衡因子6. 97. 128.(1)2k-1 (2)2k-19.(1)2H-1 (2)2H-1(3)H=⎣log2N⎦+110. 用顺序存储二叉树时,要按完全二叉树的形式存储,非完全二叉树存储时,要加“虚结点”。

数据结构习题解析第6章

数据结构习题解析第6章

第6章树与森林一、复习要点本章主要介绍了树与森林、二叉树的定义、性质、操作和相关算法的实现。

特别是二叉树的遍历算法,它们与许多以此为基础的递归算法都必须认真学习。

因为树的先根遍历次序与对应二叉树表示的前序遍历次序一致,树的后根遍历次序与对应二叉树的中序遍历次序一致,因此可以据此得出树的遍历算法。

线索化二叉树是直接利用二叉链表的空链指针记入前驱和后继线索,从而简化二叉树的遍历。

堆是一种二叉树的应用,可以用它作为优先级队列的实现。

它的存储表示是完全二叉树的顺序存储方式,它的定义不要求堆中的数据有序,但要求双亲结点与子女结点必须满足某种关系。

本章最后讨论霍夫曼树。

这种树是扩充二叉树,要求在外结点上带有权值,在构造霍夫曼树时必须注意一个新结点的左子女上所带的权值小于右子女上所带的权值,这不是霍夫曼树必须这样,而是实现算法造成这种结果。

此外,作为霍夫曼树的应用,引入霍夫曼编码。

通常让霍夫曼树的左分支代表编码“0”,右分支代表编码“1”,得到霍夫曼编码。

这是一种不等长编码,可以有效地实现数据压缩。

本章复习的要点是:1、基本知识点要求理解树和森林的定义,树的抽象数据类型,二叉树的定义,二叉树的性质,二叉树的抽象数据类型,二叉树的数组表示和链表存储表示。

要求掌握二叉树的遍历,包括中序遍历、前序遍历、后序遍历方法,要求理解二叉树的计数方法及从二叉树遍历结果得到二叉树的方法。

对于线索化二叉树,要求理解什么是线索,中序线索化二叉树的结构特性及寻找某结点的前驱和后继的方法。

此外,需要理解堆的定义及其实现的方法,本章只考虑用完全二叉树的顺序存储来实现。

还需要理解堆的建立,插入与删除过程。

要求掌握树/森林与二叉树的转换,树的遍历方法。

最后要求掌握霍夫曼树的实现方法及霍夫曼编码的概念。

2、算法设计建立二叉树的递归算法。

前序、中序、后序遍历二叉树的递归算法。

使用栈的前序、中序、后序遍历的非递归算法。

统计二叉树结点个数,二叉树叶结点个数,二叉树高度的递归算法。

数据结构_第六章_图_练习题与答案详细解析(精华版)

数据结构_第六章_图_练习题与答案详细解析(精华版)

图1. 填空题⑴ 设无向图G中顶点数为n,则图G至少有()条边,至多有()条边;若G为有向图,则至少有()条边,至多有()条边。

【解答】0,n(n-1)/2,0,n(n-1)【分析】图的顶点集合是有穷非空的,而边集可以是空集;边数达到最多的图称为完全图,在完全图中,任意两个顶点之间都存在边。

⑵ 任何连通图的连通分量只有一个,即是()。

【解答】其自身⑶ 图的存储结构主要有两种,分别是()和()。

【解答】邻接矩阵,邻接表【分析】这是最常用的两种存储结构,此外,还有十字链表、邻接多重表、边集数组等。

⑷ 已知无向图G的顶点数为n,边数为e,其邻接表表示的空间复杂度为()。

【解答】O(n+e)【分析】在无向图的邻接表中,顶点表有n个结点,边表有2e个结点,共有n+2e个结点,其空间复杂度为O(n+2e)=O(n+e)。

⑸ 已知一个有向图的邻接矩阵表示,计算第j个顶点的入度的方法是()。

【解答】求第j列的所有元素之和⑹ 有向图G用邻接矩阵A[n][n]存储,其第i行的所有元素之和等于顶点i的()。

【解答】出度⑺ 图的深度优先遍历类似于树的()遍历,它所用到的数据结构是();图的广度优先遍历类似于树的()遍历,它所用到的数据结构是()。

【解答】前序,栈,层序,队列⑻ 对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(),利用Kruskal 算法求最小生成树的时间复杂度为()。

【解答】O(n2),O(elog2e)【分析】Prim算法采用邻接矩阵做存储结构,适合于求稠密图的最小生成树;Kruskal算法采用边集数组做存储结构,适合于求稀疏图的最小生成树。

⑼ 如果一个有向图不存在(),则该图的全部顶点可以排列成一个拓扑序列。

【解答】回路⑽ 在一个有向图中,若存在弧、、,则在其拓扑序列中,顶点vi, vj, vk的相对次序为()。

【解答】vi, vj, vk【分析】对由顶点vi, vj, vk组成的图进行拓扑排序。

数据结构课后习题答案第六章

数据结构课后习题答案第六章
(1) 前序遍历序列和中序遍历序列相同。 (2) 中序遍历序列和后序遍历序列相同。 (3) 前序遍历序列和后序遍历序列相同。
欢迎下载
6
-
9.已知信息为“ ABCD BCD CB DB ACB ”,请按此信息构造哈夫曼树,求出每一字符的最优编码。 10. 己知中序线索二叉树采用二叉链表存储结构,链结点的构造为:
_,双分支结点的个数为 ____, 3 分支结点的个数为 ____, C 结点的双亲结点为 ____ ,其孩子结点为 ____。
5. 一棵深度为 h 的满 k 叉树有如下性质:第 h 层上的结点都是叶子结点,其余各层上的每个结点都有
k 棵非空子树。
如果按层次顺序(同层自左至右)从 1 开始对全部结点编号,则:
7.二叉树的遍历分为 ____ ,树与森林的遍历包括 ____。 8.一棵二叉树的第 i(i>=1) 层最多有 ____ 个结点;一棵有 n(n>0) 个结点的满二叉树共有 ____ 个叶子和 ____个非终端结点。
9.在一棵二叉树中,假定双分支结点数为 5 个,单分支结点数为 6 个,则叶子结点为 ____个。
A. 逻辑 B.逻辑和存储 C.物理 D.线性 19.由权值分别是 8,7, 2, 5 的叶子结点生成一棵哈夫曼树,它的带权路径长度为
A. 23 B. 37 C. 46 D. 43 20.设 T 是哈夫曼树,具有 5 个叶结点,树 T 的高度最高可以是 ( )。
A.2 B . 3 C. 4 D. 5
()
6.在叶子数目和权值相同的所有二叉树中,最优二叉树一定是完全二叉树。
()
7.由于二叉树中每个结点的度最大为 2,所以二叉树是一种特殊的树。 8.二叉树的前序遍历序列中,任意一个结点均处在其子树结点的前面。

数据结构第6章 树习题+答案

数据结构第6章 树习题+答案

第六章 树和二叉树一、选择题1.已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为ABC*+DE/-,其前缀形式为( D )A .-A+B*C/DE B. -A+B*CD/E C .2. 设有一表示算术表达式的二叉树(见下图), 它所表示的算术表达式是( C ) A. A*B+C/(D*E)+(F-G) B. (A*B+C)/(D*E)+(F-G) C. (A*B+C)/(D*E+(F-G )) D. A*B+C/D*E+F-G 3. 在下述结论中,正确的是( D )①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子树可任意交换;④深度为K 的完全二叉树的结点个数小于或等于深度相同的满二叉树。

A .①②③B .②③④C .②④D .①④4. 设森林F 对应的二叉树为B ,它有m 个结点,B 的根为p,p 的右子树结点个数为n,森林F 中第一棵树的结点个数是( A )A .m-nB .m-n-1C .n+1D .条件不足,无法确定5.设森林F 中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。

与森林F 对应的二叉树根结点的右子树上的结点个数是( D )。

A .M1B .M1+M2C .M3D .M2+M36. 设给定权值总数有n 个,其哈夫曼树的结点总数为( D )A .不确定B .2nC .2n+1D .2n-17.一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有( B )结点A .2hB .2h-1C .2h+1D .h+18. 一棵具有 n 个结点的完全二叉树的树高度(深度)是( A )A .⎣logn ⎦+1B .logn+1C .⎣logn ⎦D .logn-19.深度为h 的满m 叉树的第k 层有( A )个结点。

(1=<k=<h)A .m k-1B .m k -1C .m h-1D .m h -110. 一棵树高为K 的完全二叉树至少有( C )个结点A .2k –1 B. 2k-1 –1 C. 2k-1 D. 2k11. 利用二叉链表存储树,则根结点的右指针是( C )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图1. 填空题⑴ 设无向图G中顶点数为n,则图G至少有()条边,至多有()条边;若G为有向图,则至少有()条边,至多有()条边。

【解答】0,n(n-1)/2,0,n(n-1)【分析】图的顶点集合是有穷非空的,而边集可以是空集;边数达到最多的图称为完全图,在完全图中,任意两个顶点之间都存在边。

⑵ 任何连通图的连通分量只有一个,即是()。

【解答】其自身⑶ 图的存储结构主要有两种,分别是()和()。

【解答】邻接矩阵,邻接表【分析】这是最常用的两种存储结构,此外,还有十字链表、邻接多重表、边集数组等。

⑷ 已知无向图G的顶点数为n,边数为e,其邻接表表示的空间复杂度为()。

【解答】O(n+e)【分析】在无向图的邻接表中,顶点表有n个结点,边表有2e个结点,共有n+2e个结点,其空间复杂度为O(n+2e)=O(n+e)。

⑸ 已知一个有向图的邻接矩阵表示,计算第j个顶点的入度的方法是()。

【解答】求第j列的所有元素之和⑹ 有向图G用邻接矩阵A[n][n]存储,其第i行的所有元素之和等于顶点i的()。

【解答】出度⑺ 图的深度优先遍历类似于树的()遍历,它所用到的数据结构是();图的广度优先遍历类似于树的()遍历,它所用到的数据结构是()。

【解答】前序,栈,层序,队列⑻ 对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(),利用Kruskal 算法求最小生成树的时间复杂度为()。

【解答】O(n2),O(elog2e)【分析】Prim算法采用邻接矩阵做存储结构,适合于求稠密图的最小生成树;Kruskal算法采用边集数组做存储结构,适合于求稀疏图的最小生成树。

⑼ 如果一个有向图不存在(),则该图的全部顶点可以排列成一个拓扑序列。

【解答】回路⑽ 在一个有向图中,若存在弧、、,则在其拓扑序列中,顶点vi, vj, vk的相对次序为()。

【解答】vi, vj, vk【分析】对由顶点vi, vj, vk组成的图进行拓扑排序。

2. 选择题⑴ 在一个无向图中,所有顶点的度数之和等于所有边数的()倍。

A 1/2B 1C 2D 4【解答】C【分析】设无向图中含有n个顶点e条边,则。

⑵ n个顶点的强连通图至少有()条边,其形状是()。

A nB n+1C n-1D n×(n-1)E 无回路F 有回路G 环状H 树状【解答】A,G⑶ 含n 个顶点的连通图中的任意一条简单路径,其长度不可能超过()。

A 1B n/2C n-1D n【解答】C【分析】若超过n-1,则路径中必存在重复的顶点。

⑷ 对于一个具有n个顶点的无向图,若采用邻接矩阵存储,则该矩阵的大小是()。

A nB (n-1)2C n-1D n2【解答】D⑸ 图的生成树(),n个顶点的生成树有()条边。

A 唯一B 不唯一C 唯一性不能确定D nE n +1F n-1【解答】C,F⑹ 设无向图G=(V, E)和G' =(V', E' ),如果G' 是G的生成树,则下面的说法中错误的是()。

A G' 为G的子图B G' 为G的连通分量C G' 为G的极小连通子图且V = V'D G' 是G的一个无环子图【解答】B【分析】连通分量是无向图的极大连通子图,其中极大的含义是将依附于连通分量中顶点的所有边都加上,所以,连通分量中可能存在回路。

⑺ G是一个非连通无向图,共有28条边,则该图至少有()个顶点。

A 6B 7C 8D 9【解答】D【分析】n个顶点的无向图中,边数e≤n(n-1)/2,将e=28代入,有n≥8,现已知无向图非连通,则n=9。

⑻ 最小生成树指的是()。

A 由连通网所得到的边数最少的生成树B 由连通网所得到的顶点数相对较少的生成树C 连通网中所有生成树中权值之和为最小的生成树D 连通网的极小连通子图【解答】C⑼ 判定一个有向图是否存在回路除了可以利用拓扑排序方法外,还可以用()。

A 求关键路径的方法B 求最短路径的方法C 广度优先遍历算法D 深度优先遍历算法【解答】D【分析】当有向图中无回路时,从某顶点出发进行深度优先遍历时,出栈的顺序(退出DFSTraverse算法)即为逆向的拓扑序列。

⑽ 下面关于工程计划的AOE网的叙述中,不正确的是()?br /> A 关键活动不按期完成就会影响整个工程的完成时间B 任何一个关键活动提前完成,那么整个工程将会提前完成C 所有的关键活动都提前完成,那么整个工程将会提前完成D 某些关键活动若提前完成,那么整个工程将会提前完【解答】B【分析】AOE网中的关键路径可能不止一条,如果某一个关键活动提前完成,还不能提前整个工程,而必须同时提高在几条关键路径上的关键活动。

3. 判断题⑴ 一个有向图的邻接表和逆邻接表中的结点个数一定相等。

【解答】对。

邻接表和逆邻接表的区别仅在于出边和入边,边表中的结点个数都等于有向图中边的个数。

⑵ 用邻接矩阵存储图,所占用的存储空间大小只与图中顶点个数有关,而与图的边数无关。

【解答】对。

邻接矩阵的空间复杂度为O(n2),与边的个数无关。

⑶ 图G的生成树是该图的一个极小连通子图【解答】错。

必须包含全部顶点。

⑷ 无向图的邻接矩阵一定是对称的,有向图的邻接矩阵一定是不对称的【解答】错。

有向图的邻接矩阵不一定对称,例如有向完全图的邻接矩阵就是对称的。

⑸ 对任意一个图,从某顶点出发进行一次深度优先或广度优先遍历,可访问图的所有顶点。

【解答】错。

只有连通图从某顶点出发进行一次遍历,可访问图的所有顶点。

⑹ 在一个有向图的拓扑序列中,若顶点a在顶点b之前,则图中必有一条弧。

【解答】错。

只能说明从顶点a到顶点b有一条路径。

⑺ 若一个有向图的邻接矩阵中对角线以下元素均为零,则该图的拓扑序列必定存在。

【解答】对。

参见第11题的证明。

⑻ 在AOE网中一定只有一条关键路径?br />【解答】错。

AOE网中可能有不止一条关键路径,他们的路径长度相同4.n个顶点的无向图,采用邻接表存储,回答下列问题?br />⑴ 图中有多少条边?⑵ 任意两个顶点i和j是否有边相连?⑶ 任意一个顶点的度是多少?br />【解答】⑴ 边表中的结点个数之和除以2。

⑵ 第i个边表中是否含有结点j。

⑶ 该顶点所对应的边表中所含结点个数。

5.n个顶点的无向图,采用邻接矩阵存储,回答下列问题:⑴ 图中有多少条边?⑵ 任意两个顶点i和j是否有边相连?⑶ 任意一个顶点的度是多少?【解答】⑴ 邻接矩阵中非零元素个数的总和除以2。

⑵ 当邻接矩阵A中A[i][j]=1(或A[j][i]=1)时,表示两顶点之间有边相连。

⑶ 计算邻接矩阵上该顶点对应的行上非零元素的个数。

6.证明:生成树中最长路径的起点和终点的度均为1。

【解答】用反证法证明。

设v1, v2, …, vk是生成树的一条最长路径,其中,v1为起点,vk为终点。

若vk的度为2,取vk的另一个邻接点v,由于生成树中无回路,所以,v在最长路径上,显然v1, v2, …, vk , v的路径最长,与假设矛盾。

所以生成树中最长路径的终点的度为1。

同理可证起点v1的度不能大于1,只能为1。

7.已知一个连通图如图6-6所示,试给出图的邻接矩阵和邻接表存储示意图,若从顶点v1出发对该图进行遍历,分别给出一个按深度优先遍历和广度优先遍历的顶点序列。

【解答】邻接矩阵表示如下:深度优先遍历序列为:v1 v2 v3 v5 v4 v6广度优先遍历序列为:v1 v2 v4 v6 v3 v5邻接表表示如下:8.图6-7所示是一个无向带权图,请分别按Prim算法和Kruskal算法求最小生成树。

【解答】按Prim算法求最小生成树的过程如下:按Kruskal算法求最小生成树的过程如下:9.对于图6-8所示的带权有向图,求从源点v1到其他各顶点的最短路径。

【解答】从源点v1到其他各顶点的最短路径如下表所示。

源点终点最短路径最短路径长度v1 v7 v1 v7 7v1 v5 v1 v5 11v1 v4 v1 v7 v4 13v1 v6 v1 v7 v4 v6 16v1 v2 v1 v7 v2 22v1 v3 v1 v7 v4 v6 v3 2510.如图6-9所示的有向网图,利用Dijkstra算法求从顶点v1到其他各顶点的最短路径。

【解答】从源点v1到其他各顶点的最短路径如下表所示。

源点终点最短路径最短路径长度v1 v3 v1 v3 15v1 v5 v1 v5 15v1 v2 v1 v3 v2 25v1 v6 v1 v3 v2 v6 40v1 v4 v1 v3 v2 v4 4511.证明:只要适当地排列顶点的次序,就能使有向无环图的邻接矩阵中主对角线以下的元素全部为0。

【解答】任意n个结点的有向无环图都可以得到一个拓扑序列。

设拓扑序列为v0v1v2…vn-1,我们来证明此时的邻接矩阵A为上三角矩阵。

证明采用反证法。

假设此时的邻接矩阵不是上三角矩阵,那么,存在下标i和j(i>j),使得A[i][j]不等于零,即图中存在从vi到vj的一条有向边。

由拓扑序列的定义可知,在任意拓扑序列中,vi的位置一定在vj之前,而在上述拓扑序列v0v1v2…vn-1中,由于i>j,即vi的位置在vj之后,导致矛盾。

因此命题正确。

12. 算法设计⑴ 设计算法,将一个无向图的邻接矩阵转换为邻接表。

【解答】先设置一个空的邻接表,然后在邻接矩阵上查找值不为零的元素,找到后在邻接表的对应单链表中插入相应的边表结点。

邻接矩阵存储结构定义如下:const int MaxSize=10;templatestruct AdjMatrix{T vertex[MaxSize]; //存放图中顶点的数组int arc[MaxSize][MaxSize]; //存放图中边的数组int vertexNum, arcNum; //图的顶点数和边数};邻接表存储结构定义如下:const int MaxSize=10;struct ArcNode //定义边表结点{int adjvex; //邻接点域ArcNode *next;};templatestruct VertexNode //定义顶点表结点{T vertex;ArcNode *firstedge;};struct AdjList{VertexNode adjlist[MaxSize];int vertexNum, arcNum; //图的顶点数和边数};具体算法如下:⑵ 设计算法,将一个无向图的邻接表转换成邻接矩阵。

【解答】在邻接表上顺序地取每个边表中的结点,将邻接矩阵中对应单元的值置为1。

邻接矩阵和邻接表的存储结构定义与上题相同。

具体算法如下:⑶ 设计算法,计算图中出度为零的顶点个数。

相关文档
最新文档