已知二叉树的中序和先序序列,求后序序列

合集下载

数据结构期末考试及答案

数据结构期末考试及答案

一、单选题1、逻辑上通常可以将数据结构分为( )A.初等结构和组合结构B.顺序结构和链式结构C.线性结构和非线性结构D.动态结构和静态结构正确答案:C2、如果在数据结构中每个数据元素只可能有一个直接前驱,但可以有多个直接后继,则该结构是()。

A.栈B. 队列C.图D.树正确答案:D3、在长度为n的顺序表的第i个位置上插入一个元素(1<=i<=n+1),元素的移动次数为:()A.n-iB.i-1C.n-i+1D.i正确答案:C4、在非空线性链表中由p所指结点的后面插入一个由q所指的结点,应依次执行()A.q->next=p;p->next=q;B.p->next=q;q->next=p;C.q->next=p->next;p->next=q;D.q->next=p->next;p=q;正确答案:C5、已知栈的最大容量为4。

若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为()A.2,3,5,6,1,4B.1,4,6,5,2,3C.5,4,3,2,1,6D.3,2,5,4,1,6正确答案:D6、设栈S和队列Q初始均为空,若6个元素入栈的顺序为1、2、3、4、5、6,一个元素出栈以后立即入队列Q,若6个元素出队的顺序为2、4、3、6、5、1,则栈S的容量至少为()A.3B.5C.4D.2正确答案:A7、在计算机内实现递归算法时所需的辅助数据结构是()A.队列B.栈C.图D.树正确答案:B8、循环队列存储在数组A[0..m-1],则出队时的操作为()A.front=(front mod m)+1B.ront=(front+1)mod mC.front=front+1D.front=(front+1)mod (m-1)正确答案:B9、若以S和X分别表示进栈和退栈操作,则对初始状态为空的栈可以进行的栈操作系列合法的是()A.SXXSXSSXB.SSSXXSXXC.SXSSXXXXD.SXSXXSSX正确答案:B10、在具有m个单元的循环队列中,队头指针为front,队尾指针为rear,则队满的条件是()A.(front+1)%m==rearB.(rear+1)%m==frontC.front==rearD.rear+1==front正确答案:B11、在表长为n的顺序表上做插入运算,平均要移动的结点数为()A.n/4B.nC.n/3D.n/2正确答案:D12、元素的进栈次序为A,B,C,D,E,则退栈中不可能的序列是()A.E,D,C,B,AB.A,B,C,D,EC.E,A,B,C,DD.B,C,D,E,A正确答案:C13、下述二叉树中,()满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序。

信息学模拟试卷一

信息学模拟试卷一

模拟试卷一一、单项选择题1.若某链表中最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点,则采用存储方式最节省运算时间。

(1)单链表 (2)双链表(3)单循环链表 (4)带头结点的双循环链表2.设一个栈的输入序列为A,B,C.,D,则借助一个栈所得到的输出序列不可能是(1)A,B,C,D (2)D,C,B,A (3)A,C,D,B (4)D,A,B,C3.串是。

(1)不少于一个字母的序列 (2)任意个字母的序列(3)不少于一个字符的序列 (4)有限个字符的序列4.链表不具有的特点是。

(1)可随机访问任一元素 (2)插入删除不需要移动元素(3)不必事先估计存储空间 (4)所需空间与线性表长度成正比5.在有n个叶子结点的哈夫曼树中,其结点总数为。

(1)不确定 (2)2n (3)2n+1 (4)2n-16.任何一个无向连通图的最小生成树(1)只有一棵 (2)有一棵或多棵 (3)一定有多棵 (4)可能不存在7.将一棵有100个结点的完全二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为。

(1)98 (2)99 (3)50 (4)488.下列序列中,是执行第一趟快速排序后得到的序列(排序的关键字类型是字符串)。

(1)[da,ax,eb,de,bb]ff[ha,gc] (2)[cd,eb,ax,da]ff[ha,gc,bb] (3)[gc,ax,eb,cd,bb]ff[da,ha] (4)[ax,bb,cd,da]ff[eb,gc,ha] 9.用n个键值构造一棵二叉排序树,最低高度为。

(1)n/2 (2)n (3)[log2n] (4)[log2n+1]10.二分查找法要求查找表中各元素的键值必须是排列。

(1)递增或递减 (2)递增 (3)递减 (4)无序11.对于键值序列(12,13,11,18,60,15,7,18,25,100),用筛选法建堆,必须从键值为的结点开始。

已知一棵二叉树的前序序列为bacdeghf,中序序列为cadbhgef,则后序序列为

已知一棵二叉树的前序序列为bacdeghf,中序序列为cadbhgef,则后序序列为

已知一棵二叉树的前序序列为bacdeghf,中序序列为cadbhgef,则后序序列为根据二叉树的前序序列bacdeghf和中序序列cadbhgef,可以确定该二叉树的结构。

二叉树是一种特殊的树,它只有左右两个子树,每个节点最多只有两个子节点。

二叉树的前序序列,可以从根节点开始,按照从上到下,从左到右的顺序依次访问每个节点,以根节点b开头的前序序列bacdeghf中,b为根节点,a和c为b的左右子节点,d为a的左子节点,e为a的右子节点,g为c的左子节点,h为c的右子节点。

二叉树的中序序列,可以从左到右依次访问每个节点,从根节点开始,先遍历左子树,再遍历右子树,以根节点b开头的中序序列cadbhgef中,c为b的左子节点,a为c的左子节点,d为a的左子节点,b为d的右子节点,h为b的右子节点,g为h的左子节点,e为g的右子节点。

根据前序序列和中序序列,可以绘制出该二叉树的结构。

其根节点为b,左子节点为c,右子节点为e,c的左子节点为a,a的左子节点为d,d的右子节点为b,e的左子节点为g,g的右子节点为h。

由此可知,该二叉树的后序序列为cdebhgfe,从右向左,从下到上的顺序依次访问每个节点,以根节点b结尾。

由前序序列和中序序列可以直接确定二叉树的结构,而后序序列可以帮助我们更好地理解二叉树的结构。

在许多算法中,后序序列的结构也是非常重要的。

二叉树的前序序列、中序序列和后序序列都是树的一种遍历方式,它们都可以用来确定一棵树的结构,而且这三种遍历方式之间互相转换也是非常方便的。

在计算机科学中,二叉树是一种重要的数据结构,它在图形处理、数据检索等方面有着广泛的应用。

本文综上所述,已知一棵二叉树的前序序列为bacdeghf,中序序列为cadbhgef,根据二叉树的前序序列和中序序列,可以确定该二叉树的结构,其后序序列为cdebhgfe。

二叉树的前序序列、中序序列和后序序列都是树的一种遍历方式,它们都可以用来确定一棵树的结构,而且这三种遍历方式之间互相转换也是非常方便的。

树结构

树结构

第3章树结构3.2 习题3.2.1 填空题3-1已知(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)各个结点的度数分别是_____________。

(4)各个结点的层数分别是_____________。

(5)结点G的父亲、真祖先、儿子、真子孙、兄弟分别是__________。

3-2含3个结点的普通树的树形共有(1)____种,其树形分别为(2)__________。

3-3含3个结点的二叉树的树形共有(1)____种,其树形分别为(2)___________;其中有(3)____个是完全二叉树。

3-4图3-1中:二叉树1的先序、中序、后序序列分别为:(1)_____________。

二叉树2的先序、中序、后序序列分别为:(2)_____________。

图3-13-5任何二叉树的叶结点在先序、中序和后序序列中的相对次序_____。

3-6由二叉树的先序序列和中序序列,求后序序列:先序序列ABDGCEF,中序序列DGBAECF,后序序列是(1)___________。

先序序列ABEFGCD,中序序列BFEGADC,后序序列是(2)___________。

3-7由二叉树的后序序列和中序序列,求先序序列:后序序列DBKHFEGCA,中序序列DBAKHEFCG,先序序列是(1)__________。

后序序列HGFBEDCA,中序序列HFGBAECD,先序序列是(2)__________。

3-8由正则二叉树的先序序列和后序序列,求中序序列:先序序列ABCDE,后序序列BDECA,中序序列是(1)__________。

先序序列ABCDFGHKE,后序序列BFHKGDECA,中序序列是(2)__________。

数据结构二叉树先序中序后序考研题目

数据结构二叉树先序中序后序考研题目

数据结构二叉树先序中序后序考研题目
以下是一些关于二叉树先序、中序和后序遍历的考研题目:
1. 已知二叉树的先序遍历序列为 "A B D E C F",中序遍历序列为 "D B E A F C",请画出该二叉树。

2. 已知二叉树的中序遍历序列为 "D B E A F C",后序遍历序列为 "D E B F C A",请画出该二叉树。

3. 给定一棵二叉树的先序遍历序列为 "A B D E F C",中序遍历序列为 "D B E F A C",请写出该二叉树的后序遍历序列。

4. 请写出一棵二叉树的先序遍历序列为 "A B D E C F",中序遍历序列为 "D B E A F C",后序遍历序列为 "D E B F C A" 的二叉树。

5. 已知一棵二叉树的中序遍历序列为 "D B E A F C",后序遍历序列为 "D E B F C A",请写出该二叉树的先序遍历序列。

6. 给定一棵二叉树的先序遍历序列为 "A B D E F C",后序遍历序列为 "D E F B C A",请写出该二叉树的中序遍历序列。

以上题目可以帮助你练习理解二叉树的遍历方式及其序列之间的关系。

二叉树的遍历题目及答案

二叉树的遍历题目及答案

二叉树的遍历题目及答案1. 二叉树的基本组成部分是:根(N)、左子树(L)和右子树(R)。

因而二叉树的遍历次序有六种。

最常用的是三种:前序法(即按N L R次序),后序法(即按L R N 次序)和中序法(也称对称序法,即按L N R次序)。

这三种方法相互之间有关联。

若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是 F E G H D C B 。

解:法1:先由已知条件画图,再后序遍历得到结果;法2:不画图也能快速得出后序序列,只要找到根的位置特征。

由前序先确定root,由中序先确定左子树。

例如,前序遍历BEFCGDH中,根结点在最前面,是B;则后序遍历中B一定在最后面。

法3:递归计算。

如B在前序序列中第一,中序中在中间(可知左右子树上有哪些元素),则在后序中必为最后。

如法对B的左右子树同样处理,则问题得解。

2.给定二叉树的两种遍历序列,分别是:前序遍历序列:D,A,C,E,B,H,F,G,I;中序遍历序列:D,C,B,E,H,A,G,I,F,试画出二叉树B,并简述由任意二叉树B的前序遍历序列和中序遍历序列求二叉树B的思想方法。

解:方法是:由前序先确定root,由中序可确定root的左、右子树。

然后由其左子树的元素集合和右子树的集合对应前序遍历序列中的元素集合,可继续确定root的左右孩子。

将他们分别作为新的root,不断递归,则所有元素都将被唯一确定,问题得解。

3、当一棵二叉树的前序序列和中序序列分别是HGEDBFCA和EGBDHFAC时,其后序序列必是A. BDEAGFHCB. EBDGACFHC. HGFEDCBAD. HFGDEABC答案:B4. 已知一棵二叉树的前序遍历为ABDECF,中序遍历为DBEAFC,则对该树进行后序遍历得到的序列为______。

A.DEBAFCB.DEFBCAC.DEBCFAD.DEBFCA[解析] 由二叉树前序遍历序列和中序遍历序列可以唯一确定一棵二叉树。

《数据结构》习题汇编06第六章树和二叉树试题

《数据结构》习题汇编06第六章树和二叉树试题

第六章树和二叉树试题一、单项选择题1.树中所有结点的度等于所有结点数加()。

A. 0B. 1C. -1D. 22.在一棵树中,()没有前驱结点。

A. 分支结点B. 叶结点C. 根结点D. 空结点3.在一棵二叉树的二叉链表中,空指针域数等于非空指针域数加()。

A. 2B. 1C. 0D. -14.在一棵具有n个结点的二叉树中,所有结点的空子树个数等于()。

A. nB. n-1C. n+1D. 2*n5.在一棵具有n个结点的二叉树的第i层上(假定根结点为第0层,i大于等于0而小于等于树的高度),最多具有()个结点。

A. 2iB. 2i+1C. 2i-1D. 2n6.在一棵高度为h(假定根结点的层号为0)的完全二叉树中,所含结点个数不小于()。

A. 2h-1B. 2h+1C. 2h-1D. 2h7.在一棵具有35个结点的完全二叉树中,该树的高度为()。

假定空树的高度为-1。

A. 5B. 6C. 7D. 88.在一棵具有n个结点的完全二叉树中,分支结点的最大编号为()。

假定树根结点的编号为0。

A. ⎣(n-1)/2⎦B. ⎣n/2⎦C. ⎡n/2⎤D. ⎣n/2⎦ -19.在一棵完全二叉树中,若编号为i的结点存在左孩子,则左子女结点的编号为()。

假定根结点的编号为0A. 2iB. 2i-1C. 2i+1D. 2i+210.在一棵完全二叉树中,假定根结点的编号为0,则对于编号为i(i>0)的结点,其双亲结点的编号为()。

A. ⎣(i+1)/2⎦B. ⎣(i-1)/2⎦C. ⎣i/2⎦D. ⎣i/2⎦-111.在一棵树的左子女-右兄弟表示法中,一个结点的右孩子是该结点的()结点。

A. 兄弟B. 子女C. 祖先D. 子12.在一棵树的静态双亲表示中,每个存储结点包含()个域。

A. 1B. 2C. 3D. 413.已知一棵二叉树的广义表表示为a (b (c), d (e ( , g (h) ), f ) ),则该二叉树的高度为()。

数据结构试卷

数据结构试卷

考试答案不得超过此线一、选择题(每小题2分,共20分)1、与线性表的顺序存储不相符的特性是()。

A.不便于插入和删除B.必须连续的存储空间C.需另外开辟空间保存元素间的关系D.存储容量固定2、下列时间复杂度最好的是( )。

A、O)(log2n B、O)(2nC、O)(n D、O)log(2nn3、在链表中最常用的操作是删除表中最后一个结点和在最后一个结点之后插入元素,则采用()最节省时间。

A、带头指针的单向循环链表B、带头指针的双向循环链表C、带尾指针的单向循环链表D、双向链表4、设一个栈的输入序列为1、2、3、4,则借助一个栈所得到的输出序列不可能的是()A、1,2,3,4B、4,3,2,1C、1,3,4,2D、4,1,2,35、一棵左右子树均不空的二叉树在中序线索化后,空的指针域的个数是( )。

A、0B、1C、2D、不确定6、10个顶点的连通图的深度优先生成树的边数为()。

A、11B、10C、9D、无法确定7、12个结点的平衡二叉树的最大深度为( )。

A、4B、5C、6D、78、设有一个长度为100的已排好序的表,用二分查找进行查找,若查找不成功,至少比较()次。

A、9B、8C、7D、69、一组记录的键值为(46,74,18,53,14,20,40,38,86,65),利用堆排序的方法建立的初始堆为()A、(14,18,38,46,65,40,20,53,86,74)B、(14,38,18,46,65,20,40,53,86,74)C、(14,18,20,38,40,46,53,65,74,86)考试答案不得超过此线D、(14,86,20,38,40,46,53,65,74,18)10、快速排序方法在()情况下最不利于发挥其长处。

A、要排序的数据太大B、要排序的数据中含有多个相同值C、要排序的数据已基本有序D、要排序的数据个数为奇数二、填空题(每小题2分,共16分)1、下面程序段中带下划线的语句的执行次数是for(i=0;i<=n;i++)for(j=0;j<=i;j++)x=x+1;2、若串S=‘software’,其非空子串的数目是3、设数组A[1..5,1..6] 的每个元素占5个单元,将其按行优先次序存储在起始地址为1000的连续内存单元中,则A[5,5]的地址是。

武汉大学数据结构考试题(附答案)

武汉大学数据结构考试题(附答案)

武汉大学数据结构考试题(附答案)编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(武汉大学数据结构考试题(附答案))的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为武汉大学数据结构考试题(附答案)的全部内容。

1. 下面程序段的执行次数为( A )for(i=0;i<n-1;i++)for(j=n;j>i;j--)state;A. n(n+2)2 B 。

(n-1)(n+2)2 C。

n(n+1)2 D. (n-1)(n+2)2。

一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( B )A. 110 B 。

108 C. 100 D. 1203. 一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是( C )A。

edcbaB 。

decba C. dceab D. abcde4。

循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是( D )A. (rear-front+m)%m B .read—front+1C. read-front—1 D. read—front5.不带头结点的单链表head为空的判定条件是( A )A. head=NULL B .head—next=NULLC. head-next=head D。

head!=NULL6.在一个单链表中,若p所指的结点不是最后结点,在p之后插入s所指结点,则执行(B)A。

s-next=p;p—next=s; B .s-next=p—next;p—next=s; C。

s—next=p—next;p=s; D. p—next=s;s-next=p;7. 从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较多少个结点( D )A. n B .n2 C。

树结构

树结构

第3章树结构3.2 习题3.2.1 填空题3-1已知(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)各个结点的度数分别是_____________。

(4)各个结点的层数分别是_____________。

(5)结点G的父亲、真祖先、儿子、真子孙、兄弟分别是__________。

3-2含3个结点的普通树的树形共有(1)____种,其树形分别为(2)__________。

3-3含3个结点的二叉树的树形共有(1)____种,其树形分别为(2)___________;其中有(3)____个是完全二叉树。

3-4图3-1中:二叉树1的先序、中序、后序序列分别为:(1)_____________。

二叉树2的先序、中序、后序序列分别为:(2)_____________。

图3-13-5任何二叉树的叶结点在先序、中序和后序序列中的相对次序_____。

3-6由二叉树的先序序列和中序序列,求后序序列:先序序列ABDGCEF,中序序列DGBAECF,后序序列是(1)___________。

先序序列ABEFGCD,中序序列BFEGADC,后序序列是(2)___________。

3-7由二叉树的后序序列和中序序列,求先序序列:后序序列DBKHFEGCA,中序序列DBAKHEFCG,先序序列是(1)__________。

后序序列HGFBEDCA,中序序列HFGBAECD,先序序列是(2)__________。

3-8由正则二叉树的先序序列和后序序列,求中序序列:先序序列ABCDE,后序序列BDECA,中序序列是(1)__________。

先序序列ABCDFGHKE,后序序列BFHKGDECA,中序序列是(2)__________。

已知二叉树的先序遍历序列和中序遍历序列,求其后序遍历序列

已知二叉树的先序遍历序列和中序遍历序列,求其后序遍历序列

已知⼆叉树的先序遍历序列和中序遍历序列,求其后序遍历序列2018.1.19 Fri已知⼆叉树的先序遍历序列和中序遍历序列,求其后序遍历序列例:先序遍历:ABDGCEFH中序遍历:DGBAECHF解:⾸先要先知道各种遍历⽅式的规则:先序遍历(先根遍历、前序遍历):1. 访问根结点2. 遍历左⼦树3. 遍历右⼦树中序遍历(中根遍历):1. 遍历左⼦树2. 访问根结点3. 遍历右⼦树后序遍历(后根遍历):1. 遍历左⼦树2. 遍历右⼦树3. 访问根结点且⽆论哪种遍历,左右⼦树仍然遵循该遍历规则。

若没有左⼦结点或右⼦结点(即不是满⼆叉树,如图2)则输出⼀个空代替⼀下就好,然后继续遍历。

例如图⼆中后序遍历为:BOA,即BA。

因为先序遍历是先访问根节点,所以A⼀定是根节点。

因此可以进⾏如下拆分:先序遍历:A BDGCEFH中序遍历:DGB A ECHF⼜因为中序遍历的顺序是:左⼦树,根节点,右⼦树,所以再拆 先序遍历:A BDG CEFH中序遍历:DGB A ECHF然后同理看BDG树先序遍历:B DG中序遍历:DG B得到B是A的左⼦结点。

同理看DG树: 先序遍历:D G中序遍历:D G得到D是B的左⼦结点, G是D的右⼦结点。

(因为如果G是左⼦结点的话中序遍历是GD)。

得到了左⼦树。

右⼦树同理:先序遍历:C E FH 中序遍历:E C HF得到C是A的右⼦结点,E是C的左⼦结点。

先序遍历:F H 中序遍历:H F得到F是C的右⼦结点,H是F的左⼦结点。

得到右⼦树。

得到如图1的⼆叉树。

然后得到后序遍历:GDBEHFCA。

数据结构自考题-4

数据结构自考题-4

数据结构自考题-4(总分:103.00,做题时间:90分钟)一、单项选择题(总题数:14,分数:28.00)1.栈一般情况下常采用以下两种存储方式( )A.顺序结构和散列结构 B.散列结构和链式结构C.线性结构和非线性结构 D.顺序存储结构和链式结构(分数:2.00)A.B.C.D. √解析:2.考虑下列四种排序方法,在排序过程中,关键码比较的次数与记录的初始排列顺序无关的是( ) A.直接插入排序和快速排序 B.快速排序和归并排序C.直接选择排序和归并排序 D.直接插入排序和归并排序(分数:2.00)A.B.C. √D.解析:3.在桶排序中,其平均时间复杂度是( )A.O(1) B.O(n) C.O(n2) D.O(1gn)(分数:2.00)A.B. √C.D.解析:4.链栈与顺序栈相比,有一个比较明显的优点即( )A.插入操作更加方便 B.通常不会出现栈满的情况C.不会出现栈空的情况 D.删除操作更加方便(分数:2.00)A.B. √C.D.解析:5.二维数组A[10][6]采用行优先的存储方法,若每个元素占4个存储单元,已知元素A[3][4]的存储地址为1000,则元素A[4][3]的存储地址为 ( )A.1020 B.1024C.1036 D.1240(分数:2.00)A. √B.C.D.解析:[解析] 由题意可知,自A[3][4]的存储地址1000起共存放了5个元素(即A[3][4]、A[3][5]、A[4][0]、A[4][1]和A[4][2])后,才开始存放A[4][3],所以A[4][3]的存储地址为1000+5×4=1020。

6.邻接表存储结构下图的深度优先遍历算法结构类似于于叉树的( )A.先序遍历 B.中序遍历 C.后序遍历 D.按层遍历(分数:2.00)A. √B.C.D.解析:7.对采用二分查找法进行查找运算的查找表,要求按( )方式进行存储。

A.顺序存储 B.链式存储C.顺序存储且结点按关键字有序 D.链式存储且结点按关键字有序(分数:2.00)A.B.C. √D.解析:8.将上万个一组无序并且互不相等的正整数序列,存放于顺序存储结构中,采用( )方法能够最快地找出其中最大的正整数。

数据结构5-6章测试题(带答案)

数据结构5-6章测试题(带答案)

《数据结构》第2教学单元测试练习题一.选择1.将一棵有100个结点的完全二叉树从根结点这一层开始,每一层上从左到右依次对结点编号,根结点的编号为1,则编号为49的结点的左孩子编号为()根? 右孩子?A.98B.99C.50D.482.以下说法错误的是( )A.一般在赫夫曼树中,权值越大的叶子离根结点越近B.赫夫曼树中没有度数为1的分支结点C.若初始森林中共有n棵二叉树,最终求得的赫夫曼树共有2n-1个结点D.若初始森林中共有n棵二叉树,进行2n-1次合并后才能剩下一棵最终的赫夫曼树3.深度为6的二叉树最多有( )个结点A.64 B.63 C.32 D.314.以下说法正确的是( )A.任何一棵二叉树中至少有一个结点的度为2B.任何一棵二叉树中每个结点的度都为2C.任何一棵二叉树的度肯定等于2D.任何一棵二叉树的度可以小于25.设森林T中有4棵树,第一、二、三、四棵树的结点个数分别是n1,n2,n3,n4,那么当把森林T转换成一棵二叉树后,且根结点的右子树上有( d )个结点。

根结点的左孩子上有( a )个结点。

A.n1-1B.n1C.n1+n2+n3D.n2+n3+n46.对含有( )个结点的非空二叉树,采用任何一种遍历方式,其结点访问序列均相同。

A.0B.1C.2D.不存在这样的二叉树7.讨论树、森林和二叉树的关系,目的是为了( )A.借助二叉树上的运算方法去实现对树的一些运算B.将树、森林按二叉树的存储方式进行存储C.将树、森林转换成二叉树D.体现一种技巧,没有什么实际意义8.已知某二叉树的后续遍历序列是dabec,中序遍历序列是deabc,它的前序遍历序列是( )A.acbedB.deabcC.decabD.cedba9.如果T2是由有序树T转化而来的二叉树,那么T中结点的前序就是T2中结点的( a ), 后序就是T2中结点的( b ) A.前序 B.中序 C.后序 D.层次序10.深度为5的二叉树至多有( )个结点。

数据结构答案

数据结构答案

第一章一、选择题1 从逻辑上可以把数据结构分为( C)两大类。

A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构2在下面的程序段中,对x 的赋值语句的频度为(C)FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A. O(2n) B.O(n) C.O(n2) D.O(log2n)3.连续存储设计时,存储单元的地址(A)。

A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续二、应用题1解释各组概念(1)数据结构、逻辑结构、存储结构◆数据结构:是指组成数据的元素之间的结构关系。

◆逻辑结构:是指抽象地反映数据元素之间的逻辑关系。

◆存储结构:是指数据在计算机的存储方式。

(2)算法的时间复杂性◆算法的时间复杂度:是对算法运行时间的近似估计,通常以基本语句的执行次数的数量级来描述。

(3)算法◆算法:就是一段程序,该程序段对给定的的输入可在有限的时间内产生出确定的输出结果。

2试给出下面两个算法的运算时间。

(1) for( i=1;i<=n;i++) x =x+1;O(n)(2) for( i=1;i<=n;i++){for( j=1;j<=n;i++) x= x+1;};O(n2)第二章线性表一、选择题1.下面关于线性表的叙述中,错误的是哪一个?(B)A.线性表采用顺序存储,必须占用一片连续的存储单元。

B.线性表采用顺序存储,便于进行插入和删除操作。

C.线性表采用链接存储,不必占用一片连续的存储单元。

D.线性表采用链接存储,便于插入和删除操作。

2.线性表是具有n 个(C)的有限序列(n>0)。

A.表元素 B.字符 C.数据元素 D.数据项 E.信息项3.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用(A)存储方式最节省时间。

A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表4.链表不具有的特点是(B)A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比5. 若长度为n 的线性表采用顺序存储结构,在其第i 个位置插入一个新元素的算法的时间复杂度为(C)(1<=i<=n+1)。

数据结构自考题-4_真题(含答案与解析)-交互

数据结构自考题-4_真题(含答案与解析)-交互

数据结构自考题-4(总分103, 做题时间90分钟)一、单项选择题1.栈一般情况下常采用以下两种存储方式( )A.顺序结构和散列结构B.散列结构和链式结构C.线性结构和非线性结构D.顺序存储结构和链式结构SSS_SIMPLE_SINA B C D分值: 2答案:D2.考虑下列四种排序方法,在排序过程中,关键码比较的次数与记录的初始排列顺序无关的是( )A.直接插入排序和快速排序B.快速排序和归并排序C.直接选择排序和归并排序D.直接插入排序和归并排序SSS_SIMPLE_SINA B C D分值: 2答案:C3.在桶排序中,其平均时间复杂度是( )A.O(1) B.O(n) C.O(n2) D.O(1gn)SSS_SIMPLE_SINA B C D分值: 2答案:B4.链栈与顺序栈相比,有一个比较明显的优点即( )A.插入操作更加方便B.通常不会出现栈满的情况C.不会出现栈空的情况D.删除操作更加方便SSS_SIMPLE_SINA B C D分值: 2答案:B5.二维数组A[10][6]采用行优先的存储方法,若每个元素占4个存储单元,已知元素A[3][4]的存储地址为1000,则元素A[4][3]的存储地址为( )A.1020 B.1024C.1036 D.1240SSS_SIMPLE_SINA B C D分值: 2答案:A[解析] 由题意可知,自A[3][4]的存储地址1000起共存放了5个元素(即A[3][4]、A[3][5]、A[4][0]、A[4][1]和A[4][2])后,才开始存放A[4][3],所以A[4][3]的存储地址为1000+5×4=1020。

6.邻接表存储结构下图的深度优先遍历算法结构类似于于叉树的( ) A.先序遍历B.中序遍历C.后序遍历 D.按层遍历SSS_SIMPLE_SINA B C D分值: 2答案:A7.对采用二分查找法进行查找运算的查找表,要求按( )方式进行存储。

数据结构第六章考试题库(含答案)

数据结构第六章考试题库(含答案)

第六章 树和二叉树一、选择题1.已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为ABC*+DE/-,其前缀形式为( )A .-A+B*C/DE B. -A+B*CD/E C .-+*ABC/DE D. -+A*BC/DE【北京航空航天大学 1999 一、3 (2分)】2.算术表达式a+b*(c+d/e )转为后缀表达式后为( )【中山大学 1999 一、5】A .ab+cde/*B .abcde/+*+C .abcde/*++D 3. 设有一表示算术表达式的二叉树(见下图),它所表示的算术表达式是( ) 【南京理工大学1999 一、20(2分)】 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-G4. 设树T 的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T 中的叶子数为( )A .5B .6C .7D .8【南京理工大学 2000 一、8 (1.5分)】5. 在下述结论中,正确的是( )【南京理工大学 1999 一、4 (1分)】①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子树可任意交换; ④深度为K 的完全二叉树的结点个数小于或等于深度相同的满二叉树。

A .①②③B .②③④C .②④D .①④6. 设森林F 对应的二叉树为B ,它有m 个结点,B 的根为p,p 的右子树结点个数为n,森林F 中第一棵树的结点个数是( )A .m-nB .m-n-1C .n+1D .条件不足,无法确定 【南京理工大学2000 一、17(1.5分)】7. 树是结点的有限集合,它( (1))根结点,记为T 。

其余结点分成为m (m>0)个((2))的集合T1,T2, …,Tm ,每个集合又都是树,此时结点T 称为Ti 的父结点,Ti 称为T 的子结点(1≤i ≤m )。

数据结构期末综合练习三(运算题)

数据结构期末综合练习三(运算题)

数据结构期末综合练习三(运算题)数据结构(本科)期末综合练习三(运算题)1. 对于⼀个n?n的矩阵A的任意矩阵元素a[i][j],按⾏存储时和按列存储时的地址之差是多少。

(设两种存储时的开始存储地址均为LOC(0, 0),元素所占存储单元数均为d)2. 设有⼀个⼆维数组A[10][20],按⾏存放于⼀个连续的存储空间中,A[0][0]的存储地址是200,每个数组元素占1个存储字,则A[6][2]的地址是多少。

3. 设有⼀个⼆维数组A[10][20],按列存放于⼀个连续的存储空间中,A[0][0]的存储地址是200,每个数组元素占1个存储字,则A[6][2]的地址是多少。

4. 设有⼀个10?10的矩阵A,将其下三⾓部分按⾏存放在⼀个⼀维数组B中,A[0][0]存放于B[0]中,那么A[8][5]存放于B中什么位置。

5. 设有⼀个10?10的对称矩阵A,将其上三⾓部分按⾏存放在⼀个⼀维数组B中,A[0][0]存放于B[0]中,那么A[8][5]存放于B中什么位置。

6. 设有⼀个⼆维数组A[m][n]采⽤按⾏存储,假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占⼀个存储字,则A[4][4]存放在什么位置。

7. 设有⼀个⼆维数组A[11][6],按⾏存放于⼀个连续的存储空间中,A[0][0]的存储地址是1000,每个数组元素占4个存储字,则A[8][4]的地址在什么地⽅。

8. 设有⼀个三维数组A[10][20][15],按页⁄⾏⁄列存放于⼀个连续的存储空间中,每个数组元素占4个存储字,⾸元素A[0][0][0]的存储地址是1000,则A[8][4][10]存放于什么地⽅。

9. 假定⼀棵⼆叉树⼴义表表⽰为a(b(c),d(e,f)),分别写出对它进⾏中序、后序、按层遍历的结果。

中序:后序:按层:10. 假定⼀棵⼆叉树的⼴义表表⽰为A(B(,D(G)),C(E,F)),分别写出对它进⾏前序、中序、按层遍历的结果。

树 历年试题及参考答案(08)

树 历年试题及参考答案(08)

第6章树(2008年1月)8、树的先根序列等同于与该树对应的二叉树的()A、先序序列B、中序序列C、后序序列D、层序序列21、假设一棵完全二叉树含1000个结点,则其中度为2的结点数为___________。

27、已知二叉树的先序序列和中序序列分别为ABDEHCFI和DBHEACIF,(1)画出该二叉树的二叉链表存储表示;(2)写出该二叉树的后序序列。

(1)(2)32、已知以二叉链表作二叉树的存储结构,阅读算法f32,并回答问题:(1)设二叉树T如图所示,写出执行f32(T)的返回值;(2)简述算法f32的功能。

int f32(BinTree T){int m, n;if(! T)return 0;else{m= f32(T–>lchild);n = f 32(T–>rchild);if(m>n)return m +1;else return n+1;}}(1)(2)(2008年10月)7、已知一棵含50个结点的二叉树中只有一个叶子结点,则该树中度为1的结点个数为()A、0B、1C、48D、4921、假设用<x,y>表示树的边(其中x是y的双亲),已知一棵树的边集为{<b,d>,<a,b>,<c,g>,<c,f>,<c,h>,<a,c>},该树的度是。

26、由森林转换得到的对应二叉树如图所示,写出原森林中第三棵树的前序序列和后序序列。

前序序列:后序序列:(2009年1月)7、高度为5的完全二叉树中含有的结点数至少为( )A、16B、17C、31D、328、已知在一棵度为3的树中,度为2的结点数为4,度为3的结点数为3,则该树中的叶子结点数为( )A、5B、8C、11D、189、下列所示各图中是中序线索化二叉树的是( )21、在含有3个结点a,b,c的二叉树中,前序序列为abc且后序序列为cba的二叉树有_________棵。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都为空,则根节点已经为叶子节点。
3、递归求解树。将左子树和右子树分别看成一棵二叉树,重复1、2、3步,直到所有的节点完成定位。
二、已知二叉树的后序序列和中序序列,求解树。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct Node /*树结点类型*/
{
int info; /*数据域*/
struct Node* parent; /*父结点*/
struct Node* lchild; /*左孩子结点*/
4、在后序序列LH中最后出现的元素为H,H|L|D|B|EK|A|FCG
5、在后序序列KE中最后出现的元素为E,H|L|D|B|E|K|A|FCG
5、在后序序列FGC中最后出现的元素为C,H|L|D|B|E|K|A|F|C|G
6、所有元素都已经定位,二叉树求解完成。
A
/ \
B C
/ \ / \
D E F G
post_order(root->rchild);
printf("%d ",root->info);
}
}
int main(void)
{
PNode *root;
int pre[50]={1,2,4,8,10,5,9,3,6,7};
int in[ 50]={8,10,4,2,5,9,1,6,3,7} ;
1、确定树的根。树根是当前树中所有元素在后序遍历中最后出现的元素。
2、求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都为空,则根节点已经为叶子节点。
3、递归求解树。将左子树和右子树分别看成一棵二叉树,重复1、2、3步,直到所有的节点完成定位。
/*建树*/
root = Init_tree(pre,in,10);
printf("\n前序遍历结果:\n");
pre_order(root);
printf("\n中序遍历结果:\n");
in_order(root);
printf("\n后序遍历结果:\n")ntf("\n");
struct Node* rchild; /*右孩子结点*/
}PNode;
struct Stack /*栈结点类型*/
{
int* pre;
int* in;
int n;
PNode parent;
};
PNode *Init_tree(int *pre,int *in,int n);//声明
/*前序遍历*/
return(root);
}
树的形状
1
/ \
2 3
/ \ / \
4 5 6 7
/ \
8 9
\
10
这种题一般有二种形式,共同点是都已知中序序列。如果没有中序序列,是无法唯一确定一棵树的,证明略。
一、已知二叉树的前序序列和中序序列,求解树。
1、确定树的根节点。树根是当前树中所有元素在前序遍历中最先出现的元素。
/ \
H K
\
L
代码的运行结果
void pre_order(PNode *root)
{
if (root != NULL)
{
printf("%d ",root->info);
pre_order(root->lchild);
pre_order(root->rchild);
}
}
/*中序遍历*/
void in_order(PNode *root)
return 0;
}
PNode *Init_tree(int *pre,int *in,int n)
{
PNode *root;
int *p,*q,i,j,m;
if(n<=0)
return (NULL);
root=(PNode*)malloc(sizeof(PNode));
root->info=pre[0];
举例说明:根据已知求解二叉树
中序序列HLDBEKAFCG
后序序列LHDKEBFGCA
1、在后序序列LHDKEBFGCA中最后出现的元素为A,HLDBEK|A|FCG
2、在后序序列LHDKEB中最后出现的元素为B,HLD|B|EK|A|FCG
3、在后序序列LHD中最后出现的元素为D,HL|D|B|EK|A|FCG
root->lchild=root->rchild=NULL;
i=0;
while(i<n)
{
if(pre[0]==in[i])
break;
++i;
}
p=pre+1;
q=in;
root->lchild=Init_tree(p,q,i);
p=pre+i+1;
q=in+i+1;
root->rchild=Init_tree(p,q,n-i-1);
{
if (root != NULL)
{
in_order(root->lchild);
printf("%d ",root->info);
in_order(root->rchild);
}
}
/*后序遍历*/
void post_order(PNode *root)
{
if (root != NULL)
{
post_order(root->lchild);
相关文档
最新文档