数据结构应用题答案

合集下载

数据结构试卷(五)及答案

数据结构试卷(五)及答案

数据结构试卷(五)一、选择题(30分)1.数据的最小单位是()。

(A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量2.设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为()。

(A) 40,50,20,95 (B) 15,40,60,20(C) 15,20,40,45 (D) 45,40,15,203.设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为()。

(A) 15,25,35,50,20,40,80,85,36,70(B) 15,25,35,50,80,20,85,40,70,36(C) 15,25,35,50,80,85,20,36,40,70(D) 15,25,35,50,80,20,36,40,70,854.函数substr(“DATASTRUCTURE”,5,9)的返回值为()。

(A) “STRUCTURE”(B) “DATA”(C) “ASTRUCTUR”(D) “DATASTRUCTURE”5.设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为()。

(A) O(log2n) (B) O(1) (C) O(n2) (D) O(n)6.设一棵m叉树中度数为0的结点数为N0,度数为1的结点数为N l,……,度数为m的结点数为Nm,则N0=()。

(A) N l+N2+……+Nm (B) l+N2+2N3+3N4+……+(m-1)Nm(C) N2+2N3+3N4+……+(m-1)Nm (D) 2N l+3N2+……+(m+1)Nm7.设有序表中有1000个元素,则用二分查找查找元素X最多需要比较()次。

(A) 25 (B) 10 (C) 7 (D) 18.设连通图G中的边集E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发可以得到一种深度优先遍历的顶点序列为()。

数据结构应用题

数据结构应用题

一、应用题1. 已知关键字序列为:(74,33,52,41,13,88,66,59)哈希表长为9,哈希函数为:H (k)=k %9,解决冲突用线性补偿探测法 (取Q=5),试构造哈希表,并求出等概率下查找成功的平均查找长度。

【答案】(1)哈希表:0 1 2 3 4 5 6 7 859 74 88 13 4133 52 6621211112(2) ASL=(5*1+3*2)/8=11/82. 已知一个AOV 网如图所示。

(1)试画出它的邻接链表。

(顶点号递减出现在各邻接表中)(2)试写出按照拓扑排序算法得到的拓扑序列。

V 6V 1V 2V 4V 5V 3【答案】(1)1 v 1 06v 6 1 5 v 5 3 3V 3 2 4v 4 0 2v 2 2 ∧ 6 53 ∧5 ∧5 ∧2 ∧32 ∧(2)v 4,v 6,v 1,v 3,v 5,v 23. 已知线性表的存储结构为顺序表,阅读下列算法,并回答问题:(1)设线性表L=(21,-7,-8,19,0,-11,34,30,-10),写出执行f30(&L)后的L 状态;(2)简述算法f30的功能。

void f30 (SeqList *L) { int i,j;for (i=j=0;i<L->length; i++)if(L->data[i]>=0){if(i!=j)L->data[j]=L->data[i]; j++; } L->length=j; }【答案】(1)L=(21,19,0,34,30)(2) 删除顺序表中小于0的数。

4. 已知关键字序列{34,26,47,12,63,41,22,59},利用堆排序的方法对其排序。

(1)写出在构成初始堆后关键字的排列情况。

(2)写出在堆排序的过程中输出前4个记录时,每次调整后关键字的排列情况。

【答案】(1)初始堆:{12,26,22,34,63,41,47,59}(2)输出12后:{22,26,41,34,63,59,47} 输出22后:{26,34,41,47,63,59} 输出26后:{34,47,41,59,63} 输出34后:{41,47,63,59}5. 请用克鲁斯卡尔算法构造下图所示网络的最小生成树。

数据结构试题及答案

数据结构试题及答案

数据结构试题及答案⼀、选择题(共10题,每题1分,共10分)1.下⾯关于线性表的叙述中,错误的是哪⼀个?()A.线性表采⽤顺序存储,必须占⽤⼀⽚连续的存储单元B.线性表采⽤顺序存储,便于进⾏插⼊和删除操作C.线性表采⽤链接存储,不必占⽤⼀⽚连续的存储单元D.线性表采⽤链接存储,便于插⼊和删除操作2.在⼀个单链表中,已知q所指结点是p所指结点的前驱,若在p和q之间插⼊s所指结点,则执⾏的操作是()。

A. s->next=p->next;p->next=s;B. q->next=s;s->next=p;C. p->next=s->next;s->next=p;D. p->next=s;s->next=q;3.设有三个元素X,Y,Z顺序进栈,下列得不到的出栈排列是( )。

A.XYZ B. YZX C. ZXY D. ZYX4.若⽤⼀个长度为6的数组来实现循环队列,且当前rear和front的值分别为0和3,则从队列中删除⼀个元素,再增加两个元素后,rear和front的值分别是( )。

A.1和5 B.2和4 C.4和2 D. 5和15.下列说法中正确的是()。

A.⼆叉树就是度为2的树 B.⼆叉树中不存在度⼤于2的结点C.⼆叉树中⾄少有⼀个结点的度为2 D.⼆叉树中任何⼀个结点的度都为2 6.在具有n个结点的⼆叉链表中,共有()个空指针。

A. nB. n-1C. n+1D. 不确定7.根据⼆叉树与树的转换关系可知,深度为h的满⼆叉树对应的森林由()棵树构成。

A.1 B.log2n C. h/2 D. h8.在⼀个⽆向图中,所有顶点的度数之和等于所有边数的()倍。

A.1/2 B.1 C. 2 D. 49.对17个元素的查找表做折半查找,则查找长度为5的元素下标依次是()。

A.8,17 B.5,10,12 C.9,16 D.9,1710.关于排序,下列说法中正确的是()。

数据结构试题与参考答案

数据结构试题与参考答案

课程:数据结构专业:计算机科学与技术、网络工程、软件工程参考答案及评分标准一、单项选择题(10小题,每小题1分,共10分)1.算法指的是____D_____。

A.数据处理B.计算机程序C.解决问题的计算方法D.对特定问题求解步骤的一种描述,是指令的有限序列2.已知已个AOV网如图所示,下列____C_____不是该图的拓扑序列。

A.v0 v1 v5 v2 v3 v6 v4 B.v0 v1 v5 v2 v6 v3 v4C.v0 v1 v5 v3 v2 v6 v4 D.v0 v1 v5 v6 v2 v3 v43.设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5,e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2,e4,e3,e6,e5,e1,则栈S的容量至少应该是___B______。

A.2 B.3 C.4 D.64.如果结点A有3个兄弟,B是A的双亲,则结点B的度是______D______。

A.1 B.2 C.3 D.45.二叉树的前序序列和后序序列正好相反,则该二叉树一定是___B______的二叉树。

A.完全二叉树B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子6.在一个无向图中,所有顶点的度数之和等于所有边数的____B______倍。

A.1 B.2 C.3 D.47.判定有向图是否存在回路除了可以利用拓扑排序方法外,还可以用_____A______。

A.深度优先遍历算法B.广度优先遍历算法C.求关键路径方法D.求最短路径方法8.下述排序方法中,比较次数与待排序记录的初始状态无关的是____C_______。

A.插入排序和快速排序B.归并排序和快速排序C.选择排序和归并排序D.插入排序和归并排序9.在采用线性探测法处理冲突所构成的闭散列表上进行查找,可能要探测多个位置,在查找成功的情况下,所探测的这些位置的键值____A_____。

A.不一定都是同义词B.一定都是同义词C.一定都不是同义词D.都相同10.下列序列中,_______ 是执行第一趟快速排序的结果。

数据结构试卷试题及答案

数据结构试卷试题及答案

数据结构试卷试题及答案一、选择题(每题5分,共40分)1. 数据结构是研究数据元素的()A. 存储结构B. 处理方法C. 逻辑结构D. 所有以上内容答案:D2. 在数据结构中,通常采用()方式来表示数据元素之间的逻辑关系。

A. 顺序存储结构B. 链式存储结构C. 索引存储结构D. 散列存储结构答案:B3. 下面哪一个不是栈的基本操作?()A. 入栈B. 出栈C. 判断栈空D. 获取栈顶元素答案:D4. 下面哪一个不是队列的基本操作?()A. 入队B. 出队C. 判断队列空D. 获取队头元素答案:D5. 下面哪一个不是线性表的特点?()A. 有且只有一个根节点B. 每个节点最多有一个前驱和一个后继C. 数据元素类型相同D. 数据元素类型可以不同答案:D6. 在下列哪种情况中,使用链式存储结构比顺序存储结构更合适?()A. 数据元素经常插入和删除B. 数据元素大小不固定C. 数据元素个数不确定D. 所有以上情况答案:D7. 下面哪一个不是树的遍历方式?()A. 前序遍历B. 中序遍历C. 后序遍历D. 翻转遍历答案:D8. 在下列哪种情况中,使用散列存储结构比其他存储结构更合适?()A. 数据元素个数较少B. 数据元素查找频繁C. 数据元素插入和删除频繁D. 数据元素大小不固定答案:B二、填空题(每题5分,共30分)9. 栈是一种特殊的线性表,它的插入和删除操作都限定在表的一端进行,这一端称为______。

答案:栈顶10. 队列是一种特殊的线性表,它的插入操作在表的一端进行,这一端称为______,而删除操作在另一端进行,这一端称为______。

答案:队尾、队头11. 二叉树中的节点包括______和______。

答案:根节点、子节点12. 在图的存储结构中,邻接矩阵表示法用______个一维数组来表示图中各个顶点之间的关系。

答案:两个13. 散列存储结构中,关键码到存储地址的映射方法称为______。

2024王导数据结构综合应用题

2024王导数据结构综合应用题

2024王导数据结构综合应用题假设2024年,王导是一位深受学生喜爱的计算机科学导师。

他设计了一道综合应用题,旨在考察学生对数据结构的应用能力。

以下是题目内容和解答。

题目:在2024年的某个国家,有许多城市需要进行道路规划。

每个城市可以通过道路连接到其他城市,形成一个网络。

现有一份城市之间的道路连接关系表,其中包含了城市之间可以直接通行的道路及其长度。

请设计一个算法,找到所有城市之间的最短路径及其长度。

解答:为了解决这个问题,我们可以使用图的最短路径算法。

以下是一种常用的算法——Dijkstra算法。

1. 创建一个集合S,用于存放已经找到最短路径的城市,初始时为空。

2. 创建一个数组dist,用于存放每个城市到起点的最短路径长度,初始时所有元素为无穷大。

3. 选取一个起点,设置dist[起点]为0,并将起点加入集合S。

4. 对于起点相邻的每个城市,更新其到起点的最短路径长度,并将其加入集合S。

5. 从剩余的城市中选取一个离起点最近的城市u,将它加入集合S。

6. 对于每个城市v,如果v不在集合S中且通过u可以找到更短的路径,则更新其最短路径长度,并将其加入集合S。

7. 重复步骤5和步骤6,直到所有城市都加入集合S。

使用Dijkstra算法可以找到起点到所有城市的最短路径及其长度。

在这里可以使用优先队列(最小堆)来存储城市和最短路径长度的对应关系,以提高算法效率。

接下来我们以一个具体的例子来说明算法的步骤。

假设有4个城市,用数字1、2、3、4代表,它们之间的道路如下:- 城市1和城市2之间有一条长度为5的道路。

- 城市1和城市3之间有一条长度为9的道路。

- 城市2和城市3之间有一条长度为2的道路。

- 城市2和城市4之间有一条长度为6的道路。

- 城市3和城市4之间有一条长度为3的道路。

现在我们以城市1为起点,按照Dijkstra算法的步骤来求解最短路径及其长度。

1. 初始化操作:- 集合S = {1},dist = [0, ∞, ∞, ∞],表示起点到各个城市的最短路径长度。

(完整word版)数据结构应用题练习

(完整word版)数据结构应用题练习

1、假设一棵二叉树的层序序列是ABCDEFGHIJ 和中序序列是DBGEHJACIF,请画出该树。

21、有一个完全二叉树按层次顺序存放在一维数组中,如下所示:请指出结点P 的父结点,左子女,右子女。

3、给出下列二叉树的先序序列。

4、已知二叉树的先序遍历序列为ABCDEFGH ,中序遍历序列为CBEDFAGH ,画出二叉树。

答案:二叉树形态AFHGDECB(2)设一棵二叉树的先序序列: A B D F C E G H ,中序序列: B F D A G E H C ①画出这棵二叉树。

②画出这棵二叉树的后序线索树。

③将这棵二叉树转换成对应的树(或森林)。

ABFD CE HG(1) (2)1、已知一棵二叉树的前序序列为:A,B,D,G,J,E,H,C,F,I,K,L中序序列:D,J,G,B,E,H, A,C,K,I,L,F。

i.写出该二叉树的后序序列;ii.画出该二叉树;iii.求该二叉树的高度(假定空树的高度为-1)和度为2、度为1、及度为0的结点个数。

该二叉树的后序序列为:J,G,D,H,E,B,K,L,I,F,C,A。

该二叉树的形式如图所示:该二叉树高度为:5。

度为2的结点的个数为:3。

度为1的结点的个数为:5。

度为0的结点个数为:4。

5、试用权集合{12,4,5,6,1,2}构造哈夫曼树,并计算哈夫曼树的带权路径长度。

答案:215611187341230WPL=12*1+(4+5+6)*3+(1+2)*4=12+45+12=696、已知权值集合为{5,7,2,3,6,9},要求给出哈夫曼树,并计算带权路径长度WPL 。

答案:(1)树形态:325510199761332(2)带权路径长度:WPL=(6+7+9)*2+5*3+(2+3)*4=44+15+20=79(3) 假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。

数据结构试题及答案

数据结构试题及答案

数据结构试题及答案一、选择题(每小题2分,共20分),每个题的备选答案中,只有一个是正确的,请将答案填写在试题的括号中。

1、对顺序存储的线性表,设其长度为20,在任何位置上插入或删除操作都是等概率的。

插入一个元素时平均要移动表中的()个元素。

A.10 B.9 C.11 D.122、若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。

A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表3、当利用大小为n的数组顺序存储一个栈时,假定用top==n表示栈空,则向这个栈插入一个元素时,首先应执行()语句修改top指针。

A.top++ B.top-- C.top = 0 D.top4、设入栈顺序为A,B,C,D,E,则出栈序列不可能是()。

A.EDCBA B.ABCDE C.ADEBC D.ABDEC5、已知关键字序列(46, 79, 56, 38, 40, 84),采用快速排序(以位于最左位置的关键字为基准)得到的第一次划分结果为:()A.{ 40, 38, 46, 56, 79, 84 } B.{ 38, 46, 79, 56, 40, 84 }C.{ 38, 46, 56, 79, 40, 84 } D.{ 40, 38, 46, 79, 56, 84 }6、一个有n个顶点和n条边的无向图一定是()。

A.不连通的B.连通的C.有环的D.无环的7、在一棵具有n个结点的二叉树的第i层上,最多具有()个结点。

A.2i B.2i-1 C.2i+1 D.2n8、对线性表采用折半查找法,该线性表必须()。

A.采用顺序存储结构B.采用顺序存储结构,且元素按值有序C.采用链式存储结构D.采用链式存储结构,且元素按值有序9、在一棵具有n个结点的完全二叉树中,分支结点的最大编号为()。

A.?(n-1)/2? B.?n/2? C.?n/2? D.?n/2? -110、在一个无向图中,所有顶点的度数之和等于所有边数的( ) 倍。

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

数据结构应用题答案第2章线性表1.设指针变量p指向双向链表中结点A,指针变量q指向被插入结点B,要求给出在结点A 的后面插入结点B的操作序列(设双向链表中结点的两个指针域分别为llink和rlink)。

答:操作序列如下:q->rlink = p->rlink ; p->rlink = q ;q->rlink->llink = q ; q->llink = p ;注意答案不唯一第3章栈和队列1.设有编号为1,2,3,4的四辆列车,顺序进入一个栈式结构的车站,具体写出这四辆列车开出车站的所有可能的顺序。

答:共计14种,分别是:1234, 1243, 1324, 1342, 1432, 2134, 2143, 2341, 2314,2431, 3214, 3241, 3421, 43212.如果输入序列为1,2,3,4,5,6,试问能否通过栈结构得到以下两个序列:4,3,5,6,1,2和1,3,5,4,2,6;请说明为什么不能或如何才能得到。

答:(1)不能得到4,3,5,6,1,2 ;因为1,2,3,4入栈后;4,3出栈;得到序列4,3;栈中还有1,2;5入栈后即出栈,得到序列4,3,5;6入栈后即出栈,得到序列4,3,5,6;此时,栈中还有1,2;必须2先出栈,然后1再出栈,1不可能在2之前出栈。

故而得不到该序列。

(2)能得到输出顺序为1,3,5,4,2,6的序列。

得到的操作如下:1入栈后即出栈,得到序列1;2,3入栈后3即出栈,得到序列1,3;4,5入栈后,5出栈,4出栈,得到序列1,3,5,4;2出栈,得到序列1,3,5,4,2;6入栈后即出栈,得到序列1,3,5,4,2,6。

3.假设正读和反读都相同的字符序列为“回文”,例如,‘abba’和‘abcba’是回文,‘abcde’和‘ababab’则不是回文。

假设一字符序列已存入计算机,请用堆栈判断其是否为回文,简述算法。

答:方法一:使用数据结构:循环队列和顺序栈。

算法思路为:1.将字符串按照用户输入的顺序分别入栈和队列2.分别从队列和栈中取出首个字符3.比较取出的字符,若相等,继续分别从队列和栈中取首个字符;否则跳出循环,并设置标志flag=0;4.若队列和栈中的字符都取完,则结束,设置标志flag=1;5.flag=1,表示字符从前往后和从后往前的序列完全匹配,该字符串属于回文6.flag=0,表示字符从前往后和从后往前的序列不完全匹配,该字符串不属于回文方法二:使用栈。

将字符串的前一半入栈,再依次出栈,与后一半进行比较,若有不等则不是回文;若依次相等,则是回文。

注意:本题要求简答算法思路,并不要求写出具体算法。

4.试写出循环队列判空和判满的条件(队列最大容量为M)。

答:假设循环队列最大存储容量为M判空:Q.front==Q.rear (1)判满:(Q.rear+1)%M==Q.front (2)评分标准:给出(1)和(2)式分别得3分,其他酌情扣分。

5.假设Q[0..10]是一个循环队列,初始状态为front=rear=0,画出做完下列操作后队列的头尾指针的状态变化情况,若不能入队,请指出其元素,并说明理由。

d,e,b,g,h入队;d,e出队;i,j,k,l,m入队;n,o,p入队答:(图自己根据解答画出)d,e,b,g,h入队;状态1:front=0,rear=5;d,e出队;状态2:front=2,rear=5;i,j,k,l,m入队;状态3:front=2,rear=10;n,o,p入队;状态4:front=2,rear=1;p不能入队,因为队列已经满了。

评分标准:状态1、状态4各2分,状态2、状态3各1分,状态4中状态1分,理由1分。

6.若元素的进栈序列为:A、B、C、D、E,运用栈操作,能否得到出栈序列B、C、A、E、D和D、B、A、C、E?为什么?答:能得到出栈序列B、C、A、E、D,不能得到出栈序列D、B、A、C、E。

其理由为:若出栈序列以D开头,说明在D之前的入栈元素是A、B和C,三个元素中C是栈顶元素,B和A不可能早于C出栈,故不可能得到D、B、A、C、E出栈序列。

7.设输入序列为a,b,c,d,试写出借助一个栈可得到的两个输出序列和两个不能得到的输出序列。

答:借助栈结构,n个入栈元素可得到1/(n+1)((2n)!/(n!*n!))种出栈序列。

本题4个元素,可有14种出栈序列,abcd和dcba就是其中两种。

但dabc和adbc是不可能得到的两种。

8.将两个栈存入数组V[1..m]应如何安排最好?这时栈空、栈满的条件是什么?答:设栈S1和栈S2共享向量V[1..m],初始时,栈S1的栈顶指针top[0]=0,栈S2的栈顶指针top[1]=m+1,当top[0]=0为左栈空,top[1]=m+1为右栈空;当top[0]=0并且top[1]=m+1时为全栈空。

当top[1]-top[0]=1时为栈满。

9.如果输入序列为1 2 3 4 5 6,试问能否通过栈结构得到以下两个序列:4 3 5 6 1 2和1 3 5 4 2 6;请说明为什么不能或如何才能得到。

答:输入序列为123456,不能得出435612,其理由是,输出序列最后两元素是12,前面4个元素(4356)得到后,栈中元素剩12,且2在栈顶,不可能栈底元素1在栈顶元素2之前出栈。

得到135426的过程如下:1入栈并出栈,得到部分输出序列1;然后2和3入栈,3出栈,部分输出序列变为:13;接着4和5入栈,5,4和2依次出栈,部分输出序列变为13542;最后6入栈并退栈,得最终结果135426。

10.假设以数组sq[0..7]存放循环队列元素,变量f指向队头元素的前一位置,变量r指向队尾元素,如用A和D分别表示入队和出队操作,请给出:(1)队空的初始条件;(2)执行操作序列A3 D1 A5 D2 A1 D2 A4时的状态,并作必要的说明。

(A3表示三次入队操作,D1表示一次出队操作)答:(1)队空的初始条件:f=r=0;(2)执行操作A3后,f=0,r=3;//A3表示三次入队操作执行操作D1后,f=1,r=3;//D1表示一次出队操作执行操作A5后,f=1,r=0;执行操作D2后,f=3,r=0;执行操作A1后,f=3,r=1;执行操作D2后,f=5,r=1;执行操作A4后,按溢出处理。

因为执行A3后,r=4,这时队满,若再执行A操作,则出错。

11.内存中一片连续空间(不妨假设地址从1到m)提供给两个栈S1和S2使用,怎样分配这部分存储空间,使得对任一个栈,仅当这部分空间全满时才发生上溢1答: S1和S2共享内存中一片连续空间(地址1到m),可以将S1和S2的栈底设在两端,两栈顶向共享空间的中心延伸,仅当两栈顶指针相邻(两栈顶指针值之差的绝对值等于1)时,判断为栈满,当一个栈顶指针为0,另一个栈顶指针m+1时为两栈均空。

12.设一数列的输入顺序为123456,若采用堆栈结构,并以A和D分别表示入栈和出栈操作,试问通过入出栈操作的合法序列。

(1)能否得到输出顺序为325641的序列。

(2)能否得到输出顺序为154623的序列。

答:(1)能得到325641。

在123依次进栈后,3和2出栈,得部分输出序列32;然后4,5入栈,5出栈,得部分出栈序列325;6入栈并出栈,得部分输出序列3256;最后退栈,直到栈空。

得输出序列325641。

其操作序列为AAADDAADADDD。

(2)不能得到输出顺序为154623的序列。

部分合法操作序列为ADAAAADDAD,得到部分输出序列1546后,栈中元素为23,3在栈顶,故不可能2先出栈,得不到输出序列154623。

13.设输入序列为2,3,4,5,6,利用一个栈能得到序列2,5,3,4,6吗?为什么?栈可以用单链表实现吗?答:不能得到序列2,5,3,4,6;其理由是,输出序列第三四位两元素是3,4,前面2个元素(2,5)得到后,栈中元素剩3,4,且4在栈顶,栈底元素3不可能在栈顶元素4之前出栈。

栈可以用单链表实现,这就是链栈。

由于栈只在栈顶操作,所以链栈通常不设头结点。

14.有5个元素,其入栈次序为:A,B,C,D,E,在各种可能的出栈次序中,以元素C,D 最先出栈(即C第一个且D第二个出栈)的次序有哪几个?用S表示入栈,X表示出栈,写出可能得到次序的操作序列。

答:三个:CDEBA,CDBEA,CDBAECDEBA操作序列:SSSXSXSXXX;CDBEA操作序列:SSSXSXXSXX;CDBAE操作序列:SSSXSXXXSX;15.若以1、2、3、4作为双端队列的输入序列,试分别求出以下条件的输出序列:(1)能由输入受限的双端队列得到,但不能由输出受限的双端队列得到的输出序列;(2)能由输出受限的双端队列得到,但不能由输入受限的双端队列得到的输出序列;(3)既不能由输入受限的双端队列得到,也不能由输出受限的双端队列得到的输出序列。

答:(1)4132 (2)4213 (3)423116.设一个双端队列,元素进入该队列的次序为a,b,c,d。

求既不能由输入受限的双端队列得到,又不能由输出受限的双端队列得到的输出序列。

答:既不能由输入受限的双端队列得到,也不能由输出受限的双端队列得到的输出序列是dbca。

第6章树和二叉树1.(8分)已知一棵树的边的集合表示为:(L,N),(G,K),(G,L),(G,M),(B,E),(B,F),(D,G),(D,H),(D,I),(D,J),(A,B),(A,C),(A,D))画出这棵树,并回答下列问题:(1)树根是哪个结点?哪些是叶子结点?哪些是非终端结点?(2)树的度是多少?各个结点的度是多少?(3)树的深度是多少?各个结点的层数是多少?以结点G为根的子树的深度是多少?X72.答案HIDJKEBLFGCAX23.(5分)对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,证明:n0=n2+1。

X34.叙述并证明二叉树的性质3。

X35.(8分)已知一棵二叉树如下,(1)请分别写出按前序、中序、后序和层次遍历时得到的结点序列。

(2)如果此二叉树由森林转换得到,请画出原森林中的各棵树。

X1X56.(8分)画出由下列序列得到的二叉树以及由此二叉树转化的森林:先序:EBADCFHGIKJ;中序:ABCDEFGHIJK。

X87.有二叉树中序序列为:ABCEFGHD,后序序列为:ABFHGEDC,请画出此二叉树,并写出二叉树的先序遍历序列和层次遍历序列。

答案根据后序序列知根结点为C,因此左子树:中序序列为AB 后序序列为AB 右子树:中序序列为EFGHD ,后序序列为:FHGED 依次推得该二叉树结构如下图所示先序遍历序列:CBADEGFH层次遍历序列:CBDAEGFHX58.(8分)二叉树T的前序遍历序列和中次遍历序列分别是ABCDEFG和CBEDAFG,试画出该二叉树,并写出二叉树的后序遍历序列和层次遍历序列。

相关文档
最新文档