数据结构第六章习题课

合集下载

数据结构部分课后习题答案(耿国华)

数据结构部分课后习题答案(耿国华)

第一章绪论

一、问答题

1.什么是数据结构?

2.叙述四类基本数据结构的名称与含义。

3.叙述算法的定义与特性。

4.叙述算法的时间复杂度。

5.叙述数据类型的概念。

6.叙述线性结构与非线性结构的差别。

7.叙述面向对象程序设计语言的特点。

8.在面向对象程序设计中,类的作用是什么?

9.叙述参数传递的主要方式及特点。

10.叙述抽象数据类型的概念。

二、判断题(在各题后填写“√”或“×”)

1.线性结构只能用顺序结构来存放,非线性结构只能用非顺序结构来存放。()

2.算法就是程序。()

3.在高级语言(如C或PASCAL)中,指针类型是原子类型。()

三、计算下列程序段中X=X+1的语句频度

for(i=1;i<=n;i++)

for(j=1;j<=i;j++)

for(k=1;k<=j;k++)

x=x+1;

【解答】

i=1时:1 = (1+1)×1/2 = (1+12)/2

i=2时:1+2 = (1+2)×2/2 = (2+22)/2

i=3时:1+2+3 = (1+3)×3/2 = (3+32)/2

i=n时:1+2+3+……+n = (1+n)×n/2 = (n+n2)/2

x=x+1的语句频度为:

f(n) = [ (1+2+3+……+n) + (12 + 22 + 32 + …… + n2 ) ] / 2

=[ (1+n)×n/2 + n(n+1)(2n+1)/6 ] / 2

=n(n+1)(n+2)/6

=n3/6+n2/2+n/3

区分语句频度和算法复杂度:

O(f(n)) = O(n3)

四、试编写算法,求一元多项式P n(x)=a0+a1x+a2x2+a3x3+…a n x n的值P n(x0),并确定算法中的每一语句的执行次数和整个算法的时间复杂度,要求时间复杂度尽可能小,规定算法中不能使用求幂函数。注意:本题中的输入a i(i=0,1,…,n),x和n,输出为P n(x0)。通常算法的输入和输出可采用下列两种方式之一:

严蔚敏数据结构课后习题及答案解析

严蔚敏数据结构课后习题及答案解析

严蔚敏数据结构课后习题及答案解析数据结构课程是计算机科学与技术专业中非常重要的一门基础课程,对于学习者来说,课后习题的巩固和答案解析是学习的重要辅助材料。本文将针对严蔚敏老师所著的《数据结构(C语言版)》中的课后习

题及答案解析进行介绍和总结。

1. 第一章:绪论

(略)

2. 第二章:线性表

(略)

3. 第三章:栈和队列

3.1 课后习题

3.1.1 课后习题一:

给定一个整数序列,请设计一个算法,其中删除整数序列中重复出

现的元素,使得每个元素只出现一次。要求空间复杂度为O(1)。

3.1.2 课后习题二:

使用栈操作实现一个队列(其中队列操作包括入队列和出队列)。

3.2 答案解析

3.2.1 答案解析一:

我们可以使用双指针法来实现这一算法。设定两个指针,一个指向

当前元素,另一个指向当前元素的下一个元素。比较两个元素是否相等,如果相等,则删除下一个元素,并移动指针。如果不相等,则继

续移动指针。这样,当指针指向序列的最后一个元素时,算法结束。

空间复杂度为O(1),时间复杂度为O(n)。

3.2.2 答案解析二:

使用两个栈来实现一个队列。一个栈用于入队列操作,另一个栈用

于出队列操作。当需要入队列时,将元素直接入栈1。当需要出队列时,判断栈2是否为空,如果为空,则将栈1中的元素逐个弹出并压入栈2中,然后从栈2中弹出栈顶元素。如果栈2非空,则直接从栈2中弹出栈顶元素。这样,就可以实现使用栈操作来实现队列操作。

4. 第四章:串

(略)

5. 第五章:数组和广义表

(略)

6. 第六章:树和二叉树

(略)

7. 第七章:图

(略)

数据结构各章习题及答案

数据结构各章习题及答案

数据结构习题及解答

第1章概述

【例1-1】分析以下程序段的时间复杂度。

for(i=0;i

for(j=0;j

A[i][j]=0;

解:该程序段的时间复杂度为O(m*n)。

【例1-2】分析以下程序段的时间复杂度。

i=s=0; ①

while(s

{ i++; ②

s+=i; ③

}

解:语句①为赋值语句,其执行次数为1次,所以其时间复杂度为O(1)。语句②和语句③构成while循环语句的循环体,它们的执行次数由循环控制条件中s与n的值确定。假定循环重复执行x次后结束,则语句②和语句③各重复执行了x次。其时间复杂度按线性累加规则为O(x)。此时s与n满足关系式:s≥n,而s=1+2+3+…+x。所以有:1+2+3+…+x ≥n,可以推出:

x=

x与n之间满足x=f(),所以循环体的时间复杂度为O(),语句①与循环体由线性累加规则得到该程序段的时间复杂度为O()。

【例1-3】分析以下程序段的时间复杂度。

i=1; ①

while(i<=n)

i=2*i; ②

解:其中语句①的执行次数是1,设语句②的执行次数为f(n),则有:。

得:T(n)=O()

【例1-4】有如下递归函数fact(n),分析其时间复杂度。

fact(int n)

{ if(n<=1)

return(1); ①

else

return(n*fact(n-1)); ②

}

解:设fact(n)的运行时间函数是T(n)。该函数中语句①的运行时间是O(1),语句②的运行时间是T(n-1)+ O(1),其中O(1)为常量运行时间。

由此可得fact(n)的时间复杂度为 O(n)。

清华大学出版社数据结构(C++版)(第2版)课后习题答案最全整理

清华大学出版社数据结构(C++版)(第2版)课后习题答案最全整理

第1 章绪论

课后习题讲解

1. 填空

⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

【解答】数据元素

⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。

【解答】数据项,数据元素

【分析】数据结构指的是数据元素以及数据元素之间的关系。

⑶从逻辑关系上讲,数据结构主要分为()、()、()和()。【解答】集合,线性结构,树结构,图结构

⑷数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。

【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系

⑸算法具有五个特性,分别是()、()、()、()、()。【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性

⑹算法的描述方法通常有()、()、()和()四种,其中,()被称为算法语言。

【解答】自然语言,程序设计语言,流程图,伪代码,伪代码

⑺在一般情况下,一个算法的时间复杂度是()的函数。

【解答】问题规模

⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。

【解答】Ο(1),Ο(nlog2n)

【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。

2. 选择题

⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。

A 线性结构

B 非线性结构

C 存储位置

D 指针

【解答】C,D

【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。

数据结构 习题课

数据结构 习题课

list

p

反复执行 循环
1.保存当前要删除结点的位置(在p中); 2.将list指向当前要删除结点的下一个结点; 3.释放当前要删除结点的的空间。
LinkList DELETELIST(LinkList &list) {
/* list中存放链表的首地址 */
算 法
}
LinkList p=list; while(list!=NULL){ list=list−>link; /* 保存下一个链结点的位置 */ free(p); /* 删除并释放p指的当前结点 */ p=list; /* 下一个链结点成为当前结点 */ } return list; 时间复杂度O( 链表长度 )
3
i k
4
i
5
i
6
i
7
结 i>7 束
n=5
10 15 20 25 30
=k+1 n
改进后的算法
O(( n ))
void DEL(ElemType A[ ], int &n) { int i, k=0; if(n>1){ for(i=1; i<n; i++) /* 当A[i]与A[k]不相同时*/ if(A[i]!=A[k]) A[++k]=A[i]; /* 得到删除后的表长*/ n=k+1; } }

数据结构课后习题答案

数据结构课后习题答案

大学课程《数据结构》课后习题答案

第 1 章绪论

课后习题讲解

1. 填空

⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

【解答】数据元素

⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。

【解答】数据项,数据元素

【分析】数据结构指的是数据元素以及数据元素之间的关系。

⑶从逻辑关系上讲,数据结构主要分为()、()、()和()。

【解答】集合,线性结构,树结构,图结构

⑷数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。

【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系

⑸算法具有五个特性,分别是()、()、()、()、()。

【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性

⑹算法的描述方法通常有()、()、()和()四种,其中,()被称为算法语言。

【解答】自然语言,程序设计语言,流程图,伪代码,伪代码

⑺在一般情况下,一个算法的时间复杂度是()的函数。

【解答】问题规模

⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。

【解答】Ο(1),Ο(nlog2n)

【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。

2. 选择题

⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。

A 线性结构

B 非线性结构

C 存储位置

D 指针

【解答】C,D

数据结构习题与答案

数据结构习题与答案

第 1 章绪论

课后习题讲解

1. 填空

⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

【解答】数据元素

⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。

【解答】数据项,数据元素

【分析】数据结构指的是数据元素以及数据元素之间的关系。

⑶从逻辑关系上讲,数据结构主要分为()、()、()和()。

【解答】集合,线性结构,树结构,图结构

⑷数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。

【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系

⑸算法具有五个特性,分别是()、()、()、()、()。

【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性

⑹算法的描述方法通常有()、()、()和()四种,其中,()被称为算法语言。

【解答】自然语言,程序设计语言,流程图,伪代码,伪代码

⑺在一般情况下,一个算法的时间复杂度是()的函数。

【解答】问题规模

⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。

【解答】Ο(1),Ο(nlog2n)

【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。

2. 选择题

⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。

A 线性结构

B 非线性结构

C 存储位置

D 指针

【解答】C,D

【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。

数据结构课后习题及解析第六章

数据结构课后习题及解析第六章

数据结构课后习题及解析第六章

第六章习题

1.试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。2.对题1所得各种形态的二叉树,分别写出前序、中序和后序遍历的序列。

3.已知一棵度为k的树中有n

1个度为1的结点,n

2

个度为2的结点,……,n

k

个度为k的结点,

则该树中有多少个叶子结点并证明之。

4.假设一棵二叉树的先序序列为EBADCFHGIKJ,中序序列为ABCDEFGHIJK,请画出该二叉树。

5.已知二叉树有50个叶子结点,则该二叉树的总结点数至少应有多少个?

6.给出满足下列条件的所有二叉树:

①前序和后序相同

②中序和后序相同

③前序和后序相同

7. n个结点的K叉树,若用具有k个child域的等长链结点存储树的一个结点,则空的Child 域有多少个?

8.画出与下列已知序列对应的树T:

树的先根次序访问序列为GFKDAIEBCHJ;

树的后根次序访问序列为DIAEKFCJHBG。

9.假设用于通讯的电文仅由8个字母组成,字母在电文中出现的频率分别为:

0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10

请为这8个字母设计哈夫曼编码。

10.已知二叉树采用二叉链表存放,要求返回二叉树T的后序序列中的第一个结点指针,是否可不用递归且不用栈来完成?请简述原因.

11. 画出和下列树对应的二叉树:

12.已知二叉树按照二叉链表方式存储,编写算法,计算二叉树中叶子结点的数目。

13.编写递归算法:对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间。

14.分别写函数完成:在先序线索二叉树T中,查找给定结点*p在先序序列中的后继。在后序线索二叉树T中,查找给定结点*p在后序序列中的前驱。

数据结构第六章习题课

数据结构第六章习题课

1、以下图所示的4棵二叉树中,不是完全二叉树的是〔 〕

2、二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法〔 〕。

A 、正确

B 、错误

C 、不肯定

3、某二叉树的后序遍历序列是dabec ,中序遍历序列是debac ,它的前序遍历序列是〔 〕。

A 、acbed

B 、decab

C 、deabc

D 、cedba

4、如果T2是由有序树T 转换而来的二叉树,那么T 中结点的后序就是T2中结点的〔 〕。

A 、前序

B 、中序

C 、后序

D 、层次序

5、深度为5的二叉树至多有〔 〕个结点。

A 、16

B 、32

C 、31

D 、10

6、在一个非空二叉树的中序遍历序列中,根结点的右边〔 〕。

A 、只有右子树上的全部结点

B 、只有右子树上的局部结点

C 、只有左子树上的局部结点

D 、只有左子树上的全部结点

7、树最适合用来表示〔 〕。

A 、有序数据元素

B 、无序数据元素

C 、元素之间具有分支层次关系的数据

D 、元素之间无联系的数据。

8、任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序〔 〕。

A 、不发生改变

B 、发生改变

C 、不能确定

D 、以上都不对

9、完成任意二叉树的后序遍历的非递归算法而不使用栈结构,最正确方案是二叉树采纳〔 〕存储结构。

A 、二叉链表

B 、广义表存储结构

C 、三叉链表

D 、顺序存储结构

10、对一个满二叉树,m 个树叶,n 个结点,深度为h ,则〔 〕。

A 、n=m+h

B 、h+m=2n

C 、m=h-1

D 、n=2h -1

11、设n ,m 为二叉树上的两个结点,在中序遍历时,n 在m 前的条件是〔 〕。

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7

章)

-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

第1章

4.答案:

(1)顺序存储结构

顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述。

(2)链式存储结构

顺序存储结构要求所有的元素依次存放在一片连续的存储空间中,而链式存储结构,无需占用一整块存储空间。但为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后继元素的存储地址。所以链式存储结构通常借助于程序设计语言的指针类型来描述。

5. 选择题

(1)~(6):CCBDDA

6.

(1)O(1) (2)O(m*n) (3)O(n2)

(4)O(log3n) (5)O(n2) (6)O(n)

第2章

1.选择题

(1)~(5):BABAD (6)~(10): BCABD (11)~(15):CDDAC 2.算法设计题

(1)将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据。

[题目分析]

合并后的新表使用头指针Lc指向,pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点,从第一个结点开始进行比较,当两个链表La 和Lb均为到达表尾结点时,依次摘取其中较小者重新链接在Lc表的最后。如果两个表中的元素相等,只摘取La表中的元素,删除Lb表中的元素,这样确保合并后表中无重复的元素。当一个表到达表尾结点,为空时,将非空表的剩余元素直接链接在Lc表的最后。

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)

第1章

4.答案:

(1)顺序存储结构

顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述。

(2)链式存储结构

顺序存储结构要求所有的元素依次存放在一片连续的存储空间中,而链式存储结构,无需占用一整块存储空间。但为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后继元素的存储地址。所以链式存储结构通常借助于程序设计语言的指针类型来描述。

5. 选择题

(1)~(6):CCBDDA

\

6.

(1)O(1) (2)O(m*n) (3)O(n2)

(4)O(log3n) (5)O(n2) (6)O(n)

第2章

1.选择题

(1)~(5):BABAD (6)~(10): BCABD (11)~(15):CDDAC

\

2.算法设计题

(1)将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据。[题目分析]

合并后的新表使用头指针Lc指向,pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点,从第一个结点开始进行比较,当两个链表La和Lb均为到达表尾结点时,依次摘取其中较小者重新链接在Lc表的最后。如果两个表中的元素相等,只摘取La表中的元素,删除Lb表中的元素,这样确保合并后表中无重复的元素。当一个表到达表尾结点,为空时,将非空表的剩余元素直接链接在Lc表的最后。

void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc)

严蔚敏数据结构课后习题及答案解析

严蔚敏数据结构课后习题及答案解析

第一章绪论

一、选择题

1.组成数据的基本单位是

A数据项B数据类型C数据元素D数据变量

2.数据结构是研究数据的以及它们之间的相互关系;

A理想结构,物理结构B理想结构,抽象结构

C物理结构,逻辑结构D抽象结构,逻辑结构

3.在数据结构中,从逻辑上可以把数据结构分成

A动态结构和静态结构B紧凑结构和非紧凑结构

C线性结构和非线性结构D内部结构和外部结构

4.数据结构是一门研究非数值计算的程序设计问题中计算机的①以及它们之间的②和运算等的学科;

① A数据元素B计算方法C逻辑存储D数据映像

② A结构B关系C运算D算法

5.算法分析的目的是;

A 找出数据结构的合理性B研究算法中的输入和输出的关系

C分析算法的效率以求改进D分析算法的易懂性和文档性

6.计算机算法指的是①,它必须具备输入、输出和②等5个特性;

① A计算方法B排序方法C解决问题的有限运算序列D调度方法

② A可执行性、可移植性和可扩充性B可行性、确定性和有穷性

C确定性、有穷性和稳定性D易读性、稳定性和安全性

二、判断题

1.数据的机内表示称为数据的存储结构;

2.算法就是程序;

3.数据元素是数据的最小单位;

4.算法的五个特性为:有穷性、输入、输出、完成性和确定性;

5.算法的时间复杂度取决于问题的规模和待处理数据的初态;

三、填空题

1.数据逻辑结构包括________、________、_________ 和_________四种类型,其中树形结构和图形结构合称为_____;

2.在线性结构中,第一个结点____前驱结点,其余每个结点有且只有______个前驱结点;最后一个结点______后续结点,其余每个结点有且只有_______个后续结点;

数据结构课后习题(第6章)

数据结构课后习题(第6章)

【课后习题】第6章树和二叉树

网络工程2010级()班学号:姓名:

一、填空题(每空1分,共16分)

1.从逻辑结构看,树是典型的。

2.设一棵完全二叉树具有999个结点,则此完全二叉树有个叶子结点,有

个度为2的结点,有个度为1的结点。

3.由n个权值构成的哈夫曼树共有个结点。

4.在线索化二叉树中,T所指结点没有左子树的充要条件是。

5.在非空树上,_____没有直接前趋。

6.深度为k的二叉树最多有结点,最少有个结点。

7.若按层次顺序将一棵有n个结点的完全二叉树的所有结点从1到n编号,那么当i为

且小于n时,结点i的右兄弟是结点,否则结点i没有右兄弟。

8.N个结点的二叉树采用二叉链表存放,共有空链域个数为。

9.一棵深度为7的满二叉树有___ ___个非终端结点。

10.将一棵树转换为二叉树表示后,该二叉树的根结点没有。

11.采用二叉树来表示树时,树的先根次序遍历结果与其对应的二叉树的遍历结

果是一样的。

12.一棵Huffman树是带权路径长度最短的二叉树,权值的外结点离根较远。

二、判断题(如果正确,在对应位置打“√”,否则打“⨯”。每题0.5分,共5分)

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

2.二叉树的前序遍历并不能唯一确定这棵树,但是,如果我们还知道该二叉树的根结点

是那一个,则可以确定这棵二叉树。

3.一棵树中的叶子结点数一定等于与其对应的二叉树中的叶子结点数。

4.度≤2的树就是二叉树。

5.一棵Huffman树是带权路径长度最短的二叉树,权值较大的外结点离根较远。

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

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

所以
n=n1+2×n2+…+m×nm+1 由(1)(2)可知 n0= n2+2×n3+3×n4+…+(m-1) ×nm+1
(2)
八、证明:一棵满 K 叉树上的叶子结点数 n0 和非叶子结点数 n1 之间满足以下关 系:n0=(k-1)n1+1。 证明:n=n0+n1
n=n1k+1 由上述式子可以推出 n0=(k-1)n1+1 十五、请对右图所示的二叉树进行后序线索化,为每个空指针建立相应的前驱或 后继线索。
右兄弟的编号是 i+1.
五、已知一棵度为 m 的树中有 n1 个度为 1 的结点,n2 个度为 2 的结点,……,
nm 个度为 m 的结点,问该树中共有多少个叶子结点?有多少个非终端结点?
解:设树中共有 n 个结点,n0 个叶结点,那么
n=n0+n1+…+nm
(wk.baidu.com)
树中除根结点外,每个结点对应着一个分支,而度为 k 的结点发出 k 个分支,
(2)
(3)
(4)
○ ○
/\ \
○○ ○

/

/ \ ○ ○
○ / ○
\ ○
○ \
○ /

四、一个深度为 h 的满 k 叉树有如下性质:第 h 层上的结点都是叶子结点,其余 各层上每个结点都有 k 棵非空子树。如果按层次顺序(同层自左至右)从 1 开始对 全部结点编号,问:

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

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

A.3 B.4 C.5 D.6 7. 深度为 5 的二叉树至多有 ( )个结点。
A. 31 B. 32 C. 16 D. 10 8. 假定在一棵二叉树中,双分支结点数为
15,单分支结点数为 30 个,则叶子结点数为 ( )个。
A. 15 B. 16 C. 17 D. 47
9. 题图 6-1 中, ( )是完全二叉树, ( )是满二叉树。
这棵树的根点是 ____;叶子结点是 ____;结点 k3 的度是 ____;结点 k3 的 子女是 ____;结点 k3 的父结点是 ____;这棵树的度为 ____;这棵树的深度是
____ 。
欢迎下载
3
-
4. 假定一棵树的广义表表示为 A(B(E) , C(F(H , I , J, G), D) ,则该树的度为 ____,树的深度为 ____,终端结点的个数为 ____,单分支结点的个数为 ___
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 的完全二叉树至少有 ( )个结点,至多有 ( )个结点。
17. 用一维数组存放的一棵完全二叉树如题图

数据结构6章习题单号和双号(附答案不保证正确)

数据结构6章习题单号和双号(附答案不保证正确)

《算法与数据结构》第1-6章课堂测验(双号)一、选择题

1、已知一个栈的进栈序列是1,2,3,…,n,其输出序列是p

1,p

2

,…,p

n

,若p

1

=n,则

p

i

的值。(C)

(A) i (B) n-i

(C) n-i+1 (D) 不确定

2、设n个元素进栈序列是1,2,3,…,n,其输出序列是p

1,p

2

,…,p

n

,若p

1

=3,则p

2

的值。(C)

(A) 一定是2 (B) 一定是1

(C) 不可能是1 (D) 以上都不对

3、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B )

D.不确定

4、在下述结论中,正确的是(D)

①只有一个结点的二叉树的度为0;

②二叉树的度为2;

③二叉树的左右子树可任意交换;

④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。

A.①②③

B.②③④

C.②④

D.①④

5、一棵树高为K的完全二叉树至少有(C)个结点。(A)

–1 +1

二、简答题

1简述下列术语:线性表,顺序表,链表。

答:线性表是具有相同特性的数据元素的一个有限序列。

用顺序存储方法存储的线性表简称顺序表。

用链式存储方法存储的线性表简称链表。(这组存储单元可以使连续的,也可以是不连续的)

2何时选用顺序表,何时选用链表作为线性表的存储结构合适?各自的主要优缺点是什么?

答:顺序表的主要优点:

没用使用指针,不用花费附加开销

线性表元素的读访问非常简洁便利

链表的主要优点:

无需事先了解线性表的长度

能够适应经常插入删除内部元素的情况

允许线性表的长度有很大变化

不要使用顺序表的场合:

经常插入删除时,不宜使用顺序表

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

1、下图所示的4棵二叉树中,不是完全二叉树的是()

2、二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法()。

A 、正确

B 、错误

C 、不一定

3、已知某二叉树的后序遍历序列是dabec ,中序遍历序列是debac ,它的前序遍历序列是()。

A 、acbed

B 、decab

C 、deabc

D 、cedba

4、如果T2是由有序树T 转换而来的二叉树,那么T 中结点的后序就是T2中结点的()。

A 、前序

B 、中序

C 、后序

D 、层次序

5、深度为5的二叉树至多有()个结点。

A 、16

B 、32

C 、31

D 、10

6、在一个非空二叉树的中序遍历序列中,根结点的右边()。

A 、只有右子树上的所有结点

B 、只有右子树上的部分结点

C 、只有左子树上的部分结点

D 、只有左子树上的所有结点

7、树最适合用来表示()。

A 、有序数据元素

B 、无序数据元素

C 、元素之间具有分支层次关系的数据

D 、元素之间无联系的数据。

8、任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序()。

A 、不发生改变

B 、发生改变

C 、不能确定

D 、以上都不对

9、实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳方案是二叉树采用()存储结构。

A 、二叉链表

B 、广义表存储结构

C 、三叉链表

D 、顺序存储结构

10、对一个满二叉树,m 个树叶,n 个结点,深度为h ,则()。

A 、n=m+h

B 、h+m=2n

C 、m=h-1

D 、n=2h -1

11、设n ,m 为二叉树上的两个结点,在中序遍历时,n 在m 前的条件是()。

A 、n 在m 右方

B 、n 是m 祖先

C 、n 在m 左方

D 、n 是m 子孙

12.已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为ABC*+DE/-

A

B

C D

其前缀形式为( )

A .-A+B*C/DE B. -A+B*CD/E C .-+*ABC/DE D. -+A*BC/DE 13.设有一表示算术表达式的二叉树(见右图),

它所表示的算术表达式是()

A. A*B+C/(D*E)+(F-G) C. (A*B+C)/(D*E+(F-G )) D. A*B+C/D*E+F-G

14.在下述结论中,正确的是()

①只有一个结点的二叉树的度为0; ②二叉树的度为2;③二叉树的左右子树可任意交换; ④深度为K 的完全二叉树的结点个数小于或等于深度相同的满二叉树。

A .①②③

B .②③④

C .②④

D .①④

15.设森林F 对应的二叉树为B ,它有m 个结点,B 的根为p,p 的右子树结点个数为n,森林F 中第一棵树的结点个数是()

A .m-n

B .m-n-1

C .n+1

D .条件不足,无法确定

16.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()

A .9

B .11

C .15

D .不确定

17.一棵完全二叉树上有1001个结点,其中叶子结点的个数是()

A . 250

B .500

C .254

D .505

E .以上答案都不对

18. 一个具有1025个结点的二叉树的高h 为()

A .11

B .10

C .11至1025之间

D .10至1024之间

19.深度为h 的满m 叉树的第k 层有()个结点。(1=

A .m k-1

B .m k -1

C .m h-1

D .m h -1

20.利用二叉链表存储树,则根结点的右指针是()。

A .指向最左孩子

B .指向最右孩子

C .空

D .非空

21.对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用( )次序的遍历实现编号。

A .先序 B. 中序 C. 后序 D. 从根开始按层次遍历

22.若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用( )遍历方法最合适。

A .前序

B .中序

C .后序

D .按层次

23.一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足()

A.所有的结点均无左孩子B.所有的结点均无右孩子

C.只有一个叶子结点D.是任意一棵二叉树

24. 若X是二叉中序线索树中一个有左孩子的结点,且X不为根,则x的前驱为( )

A.X的双亲

B.X的右子树中最左的结点

C.X的左子树中最右结点

D.X的左子树中最右叶结点

25.线索二叉树是一种()结构。

A.逻辑B.逻辑和存储C.物理D.线性

26.n个结点的线索二叉树上含有的线索数为()

A.2n B.n-l C.n+l D.n

27.下面几个符号串编码集合中,不是前缀编码的是()。

A.{0,10,110,1111} B.{11,10,001,101,0001}

C.{00,010,0110,1000} D.{b,c,aa,ac,aba,abb,abc}

28.当一棵有n个结点的二叉树按层次从上到下,同层次从左到右将数据存放在一维数组A[l..n]中时,数组中第i个结点的左孩子为()

A.A[2i](2i=

29、高度为h的完全二叉树至少有多少个结点?至多有多少个结点?

解:高度为h的完全二叉树至少有2h-1个结点,至多有2h-1个结点(也就是满二叉树)。

30、在什么样的情况下,等长编码是最优的前缀码?

答:在每个字符的使用概率相同的情况下,也即在哈夫曼树中每片叶子的权重相等的时候,等长编码是最优的前缀码。

31.假设在树中,结点x是结点y的双亲时,用(x,y)来表示树边。已知一棵树边的集合为{(i,m),(i,n),(e,i),(b,e),(b,d),(a,b),(g,j),(g,k),(c,g),(c,f),(h,l),(c,h),(a,c)}用图表示出此树,并回答下列问题:

(1)哪个是根结点? (2)哪些是叶结点? (3)哪个是g的双亲? (4)哪些是g的祖先?

(5)哪些是g的孩子? (6)哪些是e的子孙? (7)哪些是e的兄弟?哪些是f的兄弟?

(8)结点b和n的层次各是多少? (9)树的深度是多少? (10)以结点c为根的子树的深度是多少? (11) 树的度数是多少?

答:这是测试我们对树的基本概念的掌握情况。

a是根结点;mndfjkl是叶结点;c是g的双亲;c,a是g的祖先;

j,k是g的孩子;imn是e的子孙;d是e的兄弟,g,h是f的兄弟;

b的层次是2,n的层次是5;树的深度是5;以c为根的子树深度是3;

树的度数是3。

32、试找出分别满足下面条件的所有二叉树:

相关文档
最新文档