数据结构复习题附答案
数据结构复习习题和答案(DOC)

第一章绪论一、单项选择题1.数据结构是一门研究非数值计算的程序设计问题中计算机的①以及它们之间的②和操作等的学科。
① A.操作对象 B.计算方法 C·逻辑存储 D.数据映象② A.结构 B.关系 C.运算. D.算法2.数据结构被形式地定义为(D,R),其中D是①的有限集合,R是D上的②有限集合。
① A.算法 B.数据元素 C.数据操作 D.逻辑结构② A.操作 B.映象 C、存储 D.关系3.在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构4·算法分析的目的是①,算法分析的两个主要方面是②。
① A. 找出数据结构的合理性 B.研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性② A. 空间复杂性和时间复杂性 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性5.计算机算法指的是①,它必具备输入、输出和②等五个特性。
① A. 计算方法 B.排序方法 C. 解决问题的有限运算序列 D.调度方法② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性 D.易读性、稳定性和安全性6. 线性表的逻辑顺序与存储顺序总是一致的,这种说法()。
A. 正确 B.不正确7. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址()。
A. 必须是连续的 B.部分地址必须是连续的C. 一定是不连续的D. 连续或不连续都可以8.数据结构通常是研究数据的()及它们之间的相互联系。
A.存储和逻辑结构 B.存储和抽象C.理想与抽象 D.理想与逻辑9.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为()。
A.存储结构 B.逻辑结构 C.顺序存储结构 D.链式存储结构11.非线性结构是数据元素之间存在一种()。
数据结构复习题及答案5篇

数据结构复习题及答案5篇第一篇:数据结构复习题及答案、数据结构复习题及答案中南大学现代远程教育课程考试(专科)复习题及参考答案数据结构一、判断题:1.数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的。
()2.链式存储在插人和删除时需要保持物理存储空间的顺序分配,不需要保持数据元素之间的逻辑顺序。
()3.在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。
()4.折半搜索只适用于有序表,包括有序的顺序表和有序的链表。
()5.如果两个串含有相同的字符,则这两个串相等。
()6.数组可以看成线性结构的一种推广,因此可以对它进行插入、删除等运算。
()7.在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针。
()8.通常递归的算法简单、易懂、容易编写,而且执行的效率也高。
()9.一个广义表的表尾总是一个广义表。
()10.当从一个小根堆(最小堆)中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。
()11.对于一棵具有n个结点,其高度为h的二叉树,进行任一种次序遍历的时间复杂度为O(h)。
()12.存储图的邻接矩阵中,邻接矩阵的大小不但与图的顶点个数有关,而且与图的边数也有关。
()13.直接选择排序是一种稳定的排序方法。
()14.闭散列法通常比开散列法时间效率更高。
()15.有n个结点的不同的二叉树有n!棵。
()16.直接选择排序是一种不稳定的排序方法。
()17.在2048个互不相同的关键码中选择最小的5个关键码,用堆排序比用锦标赛排序更快。
()18.当3阶B_树中有255个关键码时,其最大高度(包括失败结点层)不超过8。
()19.一棵3阶B_树是平衡的3路搜索树,反之,一棵平衡的3路搜索树是3阶非B_树。
()20.在用散列表存储关键码集合时,可以用双散列法寻找下一个空桶。
数据结构复习题及参考答案

数据结构复习题及参考答案《数据结构》课程复习资料一、填空题:1.设需要对5个不同的记录关键字进行排序,则至少需要比较________次,至多需要比较__________次。
2.设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较_________次。
3.设在长度为20的有序表中进行二分查找,则比较一次查找成功的结点数有_________个,比较两次查找成功有结点数有_________个。
4.数据结构从逻辑上划分为三种基本类型:___________、__________和___________。
5.在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。
6.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度___________。
7.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为________,整个堆排序过程的时间复杂度为________。
8.在快速排序、堆排序、归并排序中,_________排序是稳定的。
9.在有n个叶子结点的哈夫曼树中,总结点数是_______。
10.一棵树T采用二叉链表存储,如果树T中某结点为叶子结点,则在二叉链表BT中所对应的结点一定_______。
11.3.已知数组A[10][10]为对称矩阵,其中每个元素占5个单元。
现将其下三角部分按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,6]对应的地址是_______。
12.在有n个结点的无向图中,其边数最多为_______。
13.取出广义表A=(x,(a,b,c,d))中原子x的函数是_______。
14.对矩阵采用压缩存储是为了___ ____。
15.带头结点的双循环链表L为空表的条件是_______。
16.设线性表中元素的类型是实型,其首地址为1024,则线性表中第6个元素的存储位置是。
数据结构复习题及答案

数据结构复习题及答案一、选择题1. 在数据结构中,以下哪种数据结构允许在任何位置进行插入和删除操作?A. 栈B. 队列C. 链表D. 数组答案:C2. 以下哪个选项是二叉搜索树的特性?A. 所有左子树的节点值小于根节点值B. 所有右子树的节点值大于根节点值C. 所有左子树的节点值大于根节点值D. 所有右子树的节点值小于根节点值答案:A3. 在图的遍历中,深度优先搜索(DFS)使用的是哪种数据结构?A. 栈B. 队列C. 链表D. 数组答案:A二、填空题1. 在一个有n个节点的完全二叉树中,如果节点按层次从上到下、从左到右编号为1, 2, 3, ..., n,则第i个节点的左孩子节点的编号为____。
答案:2i2. 哈希表解决冲突的一种方法是使用链地址法,其中每个哈希表项是一个____。
答案:链表3. 在图的表示方法中,邻接矩阵适合表示____图,邻接表适合表示____图。
答案:稠密;稀疏三、简答题1. 描述什么是递归,并给出一个简单的递归算法的例子。
答案:递归是一种在算法中调用自身的方法,用于解决可以分解为相似子问题的问题。
一个简单的递归算法例子是计算阶乘:n! = n * (n-1)!,其中基本情况是0! = 1。
2. 解释什么是图的广度优先搜索(BFS)算法,并说明其在哪些情况下适用。
答案:广度优先搜索(BFS)是一种遍历或搜索树或图的算法,它从根节点开始,逐层遍历节点。
BFS适用于寻找最短路径或在层次结构中按层次顺序访问节点的情况。
四、编程题1. 给定一个单链表,请编写一个函数来反转该链表。
答案:(此处省略具体代码实现,只提供解题思路)要反转一个单链表,可以创建一个新的链表头节点,然后遍历原链表,将每个节点的next指针指向前一个节点,直到链表末尾。
最后,将新链表的头节点设置为原链表的最后一个节点的前驱节点。
(完整版)数据结构复习题(附答案)

(完整版)数据结构复习题(附答案)⼀、算法设计题(每题15分,共60分)答题要求:①⽤⾃然语⾔说明所采⽤算法的思想;②给出每个算法所需的数据结构定义,并做必要说明;③写出对应的算法程序,并做必要的注释。
1、有⼀个带头结点的单链表,每个结点包括两个域,⼀个是整型域info,另⼀个是指向下⼀个结点的指针域next。
假设单链表已建⽴,设计算法删除单链表中所有重复出现的结点,使得info域相等的结点只保留⼀个。
3、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个⼈按顺时针⽅向围坐成⼀圈,现从第s个⼈开始按顺时针⽅向报数,数到第m个⼈出列,然后从出列的下⼀个⼈重新开始报数,数到第m的⼈⼜出列,…,如此重复直到所有的⼈全部出列为⽌。
现要求采⽤循环链表结构设计⼀个算法,模拟此过程。
4、编程实现单链表的就地逆置。
23.在数组 A[1..n]中有n个数据,试建⽴⼀个带有头结点的循环链表,头指针为h,要求链中数据从⼩到⼤排列,重复的数据在链中只保存⼀个.5、设计⼀个尽可能的⾼效算法输出单链表的倒数第K个元素。
3、假设以I和O分别表⽰⼊栈和出栈操作。
栈的初态和终态均为空,⼊栈和出栈的操作序列可表⽰为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为⾮法序列。
(15分)(1)下⾯所⽰的序列中哪些是合法的?A. IOIIOIOOB. IOOIOIIOC. IIIOIOIOD. IIIOOIOO(2)通过对(1)的分析,写出⼀个算法,判定所给的操作序列是否合法。
若合法,返回true,否则返回false(假定被判定的操作序列已存⼊⼀维数组中)。
5、设从键盘输⼊⼀整数的序列:a1, a2, a3,…,an,试编写算法实现:⽤栈结构存储输⼊的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。
算法应对异常情况(⼊栈满等)给出相应的信息。
设有⼀个背包可以放⼊的物品重量为S,现有n件物品,重量分别为W1,W2,...,W n。
数据结构复习题(附答案)

数据结构复习题(附答案)1. 快速排序在最坏情况下的时间复杂度为( D )。
A.O(log2n) B.O(nlog2n) C.O (n) D. O (n2)2.设⼀棵⼆叉树的深度为k,则该⼆叉树中最多有( D )个结点。
A. 2k-1B. 2kC.2k-1D. 2k-13.⼆叉树中第i(i≥1)层上的结点数最多有( C )个。
A. 2iB. 2iC. 2i-1D. 2i-1 4.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为( A )。
A. p->next=p->next->nextB. p=p->nextC. p=p->next->nextD. p->next=p5.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,⼀个元素出栈后即进⼊队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量⾄少应该是( C )。
A. 6B. 4C. 3D. 26.设有以下四种排序⽅法,则( B )的空间复杂度最⼤。
A. 冒泡排序B. 快速排C. 堆排序D. 希尔排序7.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为( B )。
A. 3B. 4C. 5D. 18.根据⼆叉树的定义可知⼆叉树共有( B )种不同的形态。
A. 4B. 5C. 6D. 79.对⼀个算法的评价,不包括如下( A )⽅⾯的内容。
A.并⾏性 B.健壮性和可读性 C.正确性 D.时空复杂度10.在⼆叉排序树中插⼊⼀个结点的时间复杂度为( C )。
A.O(1) B.O(n) C.O(log2n) D.O(n2)11. 队列是⼀种( B )的线性表。
A.先进后出B.先进先出 C.只能插⼊D.只能删除12.采⽤开放定址法处理散列表的冲突时,其平均查找长度( C )。
A.低于链接法处理冲突 B. 与链接法处理冲突相同C.⾼于链接法处理冲突 D.⾼于⼆分查找13.设有序顺序表中有n个数据元素,则利⽤⼆分查找法查找数据元素X的最多⽐较次数不超过( A )。
数据结构期末复习题(有答案)

一、单选题1. 从物理上可以把数据结构分为(B)两大类。
A. 动态结构、静态结构B. 顺序结构、链式结构C. 线性结构、非线性结构D. 初等结构、构造型结构2. 若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为(C )(1≤i≤n+1)。
A. O(0)B. O(1)C. O(n)D. O(n2)3. 链表不具有的特点是(B)。
A. 插入、删除不需要移动元素B. 可随机访问任一元素C. 不必事先估计存储空间D. 所需空间与线性长度成正比4. 下列排序算法中(C)排序在一趟结束后不一定能选出一个元素放在其最终位置上。
A. 选择B. 起泡C. 归并D. 堆5. 在下列排序算法中,哪一个算法的时间复杂度与初始排序无关(D )。
A. 插入排序B. 起泡排序C. 快速排序D. 选择排序6. 一个栈的输入序列为1,2,3,…,n,若输出序列的第一个元素是i,则第j个输出元素是(D)。
A. i-j-1B. i-jC. j-i+1D. 不确定7. 输入序列为ABC,可以变为BCA时,经过的栈操作为(D )。
A. push,pop,push,pop,push,popB. push,push,push,pop,pop,popC. push,push,pop,pop,push,popD. push,push,pop,push,pop,pop8. 有六个元素6 5 4 3 2 1 的顺序进栈,下列(C )不是合法的出栈序列。
A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 4 1 5 69. 串的长度是指(B )。
A. 串中所含不同字母的个数B. 串中所含字符的个数C. 串中所含不同字符的个数D. 串中所含非空格字符的个数10. 设二维数组A[1.. m,1.. n](即m行n列)按行存储在数组B[1.. m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为( A)。
数据结构复习题(附答案)

数据结构复习题(附答案)数据结构复习题(附答案)数据结构是计算机科学中非常重要的一门课程,其涉及到对数据的组织、存储和管理方法的研究。
在学习数据结构的过程中,我们通常需要进行大量的练习和复习以加深对各种数据结构和算法的理解。
本文将为大家提供一些数据结构的复习题,并附有详细的答案解析。
一、栈和队列1. 给定一个字符串,判断其中的括号序列是否合法。
例如,"{([])}"是合法的括号序列,而"{[)]}"则是非法的。
答案:使用栈的数据结构可以很方便地解决这个问题。
遍历字符串,遇到左括号就将其入栈,遇到右括号就判断对应的左括号是否与栈顶元素相匹配,如果匹配则将栈顶元素出栈,继续比较下一个字符。
最后,栈为空则表示括号序列合法。
2. 设计一个队列,实现队列的基本操作:入队、出队、获取队头元素和判断队列是否为空。
答案:可以使用一个数组来实现队列,使用两个指针front和rear分别指示队头和队尾的位置。
入队操作时,将元素添加到rear指向的位置,并将rear后移一位;出队操作时,将front后移一位;获取队头元素时,返回front指向的位置的元素;判断队列是否为空可以通过比较front和rear来确定。
3. 反转一个单链表。
答案:使用三个指针prev、curr和next来实现链表的反转。
初始时,将prev指向null,curr指向头节点,next指向curr的下一个节点。
然后,将curr的next指向prev,将prev指向curr,将curr指向next,再将next指向next的下一个节点。
重复这个操作,直到链表反转完成。
4. 判断一个单链表中是否存在环。
答案:使用快慢指针的方法可以判断一个单链表中是否存在环。
如果存在环,那么快指针最终会追上慢指针;如果不存在环,那么快指针最终会达到链表的末尾。
三、树和图5. 给定一个二叉树,编写一个算法来判断它是否是平衡二叉树。
答案:平衡二叉树的定义是指二叉树的每个节点的左子树和右子树的高度差不超过1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.是非题1. 数据结构(应该是抽象数据类型)可用三元式表示(D,S,P)。
其中:D是数据对象,S是D上的关系,P是对D的基本操作集。
(f)2 简单地说,数据结构是带有结构的数据元素的集合。
(t)3 判断带头结点的非空循环单链表(头指针为L)中指针p所指结点是最后一个元素结点的条件是:p->next==L。
(t)4 线性表的链式存储结构具有可直接存取表中任一元素的优点。
(f)5 线性表的顺序存储结构优于链式存储结构。
(f)6. 在单链表P指针所指结点之后插入S结点的操作是:P->next= S ; S-> next = P->next;。
(f)(顺序弄反了S-> next = P->next; P->next= S ;)7 对于插入、删除而言,线性表的链式存储优于顺序存储。
(t)8. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
(f)9. 栈和队列是操作上受限制的线性表。
(t)10. 队列是与线性表完全不同的一种数据结构。
(f)(栈和队列是操作上受限制的线性表)11. 队列是一种操作受限的线性表,凡对数据元素的操作仅限一端进行。
(f)(两端)12. 栈和队列也是线性表。
如果需要,可对它们中的任一元素进行操作。
(f)( “如果需要,可对它们中的任一元素进行操作.” 这里的意思是在O(1)的时间来读和改某个元素。
比如数组的直接索引。
栈:如果需要,每一次只能对栈顶的元素进行操作队列:如果需要,每一次只能对两端,或者只能对队列头的元素进行操作。
)13. 栈是限定仅在表头进行插入和表尾进行删除运算的线性表。
(f)14. 二叉树中每个结点有两个子结点,而对一般的树,则无此限制,所以,二叉树是树的特殊情形。
(f)(二叉树和树相互独立)15 二叉树是一棵结点的度最大为二的树。
(f)(二叉树和树相互独立)16 赫夫曼树中结点个数一定是奇数。
(t)17 在二叉树的中序遍历序列中,任意一个结点均处在其左孩子结点的后面。
(t) (LDR)18 假设B是一棵树,B′是对应的二叉树。
则B的后根遍历相当于B′的后序遍历。
(f) (后根遍历相当于中序遍历)19. 通常,二叉树的第i层上有2i-1个结点。
(f)(应该为1~2i-1个)20. 中序线索二叉树的优点是便于在中序下查找直接前驱结点和直接后继结点。
(t)21 二叉树的先序遍历序列中,任意一个结点均处在其孩子结点的前面。
(t)22 由树结点的先根序列和后根序列可以唯一地确定一棵树。
(t)23 邻接多重表可以用以表示无向图,也可用以表示有向图。
(f)(只能表示无向图,有向图用十字链表)24 可从任意有向图中得到关于所有顶点的拓扑次序。
(f)(带环图没有)25 有向图的十字链表是将邻接表和逆邻接表合二为一的链表表示形式。
(t)26 关键路径是AOE网中源点到汇点的最短路径。
(f)(最长)27 连通图G的生成树是一个包含G的所有n个顶点和n-1条边的子图。
(f)(极大连通子图)28 一个无向图的连通分量是其极大的连通子图。
(t)29 十字链表可以表示无向图,也可用以表示有向图。
(f)(有向图)30 邻接表可以表示有向图,也可以表示无向图。
(t)31. 二叉排序树的平均查找长度为O(logn)。
(t)32. 二叉排序树的最大查找长度与(LOG2N)同阶。
(f)33 选用好的HASH函数可避免冲突。
(f)(无法避免,只能减少冲突)34 折半查找不适用于有序链表的查找。
(t)(因链表地址不连续)35. 对于目前所知的排序方法,快速排序具有最好的平均性能。
(t)36 对于任何待排序序列来说,快速排序均快于冒泡排序。
(f)(快速排序希望初始数据随机)37 在最坏情况下,堆排序的时间性能是O(nlogn),比快速排序好(t)(堆排序与初始数据无关)38 快速排序具有最好的平均时间性能,它在任何时候的时间复杂度都是O(n log n)。
(f) (退化到n2)39. 字符串是数据对象特定的线性表。
(t)40. 空串与空格串是相同的。
(f)(空串长度为0,空格串长度为其长度)41. 对于一棵m阶的B-树.树中每个结点至多有m 个关键字.除根之外的所有非终端结点至少有┌m/2┐个关键字。
(f)(至少有m颗子树,关键字数目至少m-1)42. 当二叉排序树是一棵平衡二叉树时,其平均查找长度为O(log2n)。
(t)43. 广义表的表头和表尾都是广义表。
(f)(表头可能是原子,也可能是列表,而其表尾必定为列表)44 二维数组是其数据元素为线性表的线性表。
(t)选择题。
1 从逻辑上可以把数据结构分成( c )。
A. 动态结构和静态结构B. 顺序组织和链接组织C. 线性结构和非线性结构D. 基本类型和组合类型2 线性表L在( b )情况下适于使用链表结构实现。
A. 不需修改L的结构B. 需不断对L进行删除、插入C. 需经常修改L中结点值D. L中含有大量结点3 带头结点的单链表L为空的判断条件是 b 。
带头结点的循环链表L为空的判断条件是 c 。
A. L==nullB. L->next==nullC. L->next==LD. L!=null4 若顺序表中各结点的查找概率不等,则可用如下策略提高顺序查找的效率:若找到指定的结点,将该结点与其后继(若存在)结点交换位置,使得经常被查找的结点逐渐移至表尾。
以下为据此策略编写的算法,请选择适当的内容,完成此功能。
顺序表的存储结构为:typedef struct{ElemType *elem; //数据元素存储空间,0号单元作监视哨int length; //表长度}SSTable;int search_seq(SSTable ST,KeyType key){ //在顺序表ST中顺序查找关键字等于key的数据元素。
//若找到,则将该元素与其后继交换位置,并返回其在表中的位置,否则为0。
ST.elem[0].key=key;i=ST.length;while(ST.elem[i].key!=key) f ;if( G ){ST.elem[i]←→ST.elem[i+1];e ;}return i;}A. i>0B. i>=0C. i<ST.lengthD. i<=ST.lengthE. i++F. i--G. A和C同时满足H. B和D同时满足5 若入栈顺序为A、B、C、D、E,则下列( d )出栈序列是不可能的。
A.A、B、C、D、E B.B、C、D、A、EC.C、D、B、E、A D.D、E、C、A、B6 递归程序可借助于( c )转化为非递归程序。
a.线性表b.队列c: 栈 d.数组7 在下列数据结构中( c )具有先进先出(FIFO)特性,( b )具有先进后出(FILO)特性。
a.线性表b.栈c.队列d.广义表8 若对编号为1,2,3的列车车厢依次通过扳道栈进行调度,不能得到( e ) 的序列。
a:1,2,3 b:1,3,2 c:2,1,3 d:2,3,1 e:3,1,2 f:3,2,19 在计算递归函数时,如不用递归过程,应借助于( b ) 这种数据结构。
A. 线性表B. 栈C. 队列D. 双向队列10 若带头结点的链表只设尾结点指针。
下列选择中( c )最适用于队列。
A)单链表B)双向链表C循环单链表D)双向循环链表11 栈和队列的一个共同点是( c )。
A. 都是先进先出B. 都是先进后出C. 只允许在端点处插入和删除元素D. 没有共同点12 循环队列用数组A[0..m-1]存放其元素值,设头尾指针分别为front和rear,则当前队列中的元素个数是( c )。
A. rear-front-1B. Rear-front+1C. (rear-front+m)%mD. Rear-front13 如下关于串的陈述中,正确的是( a, c )。
A. 串是数据元素类型特殊的线性表B. 串中的元素是字母C. 串中若干个元素构成的子序列称为子串D. 空串即为空格串14 对字符串s=’data-structure’ 执行操作replace(s,substring(s,6,8),’bas’)的结果是( b ) 。
a: ‘database’ b: ‘data-base’ c: ‘bas’ d: ‘data-basucture’15 设有二维数组A 5 x 7 ,每一元素用相邻的4个字节存储,存储器按字节编址.已知A的起始地址为100。
则按行存储时,元素A06的第一个字节的地址是(d )按列存储时,元素A06的第一个字节的地址是( a )a: 220 b: 200 c: 140 d: 12416对广义表A=((a,(b)),(c,()),d)执行操作gettail(gethead(gettail(A)))的结果是:( b ) 。
a:() b: (()) c: d d: (d)gettail(A)= ((c,()),d)gethead(gettail(A))= (c,())gettail(gethead(gettail(A)))=(())17 假设用于通讯的电文仅由6个字符组成,字母在电文中出现的频率分别为7, 19, 22, 6, 32,14。
若为这6个字母设计哈夫曼编码(设生成新的二叉树的规则是按给出的次序从左至右的结合,新生成的二叉树总是插入在最右),则频率为7的字符编码是( g ),频率为32的字符编码是( c )。
a: 00 b: 01 c: 10 d: 11e: 011 f: 110 g: 1110 h:1111(100)/\/( )( ) /\/\ (32 ) ( )(19) (22) / \(14) (13)/ \(7) (6)18 对二叉排序树( c )可得到有序序列。
a:按层遍历b:前序遍历c:中序遍历d:后序遍历19 设一棵二叉树BT的存储结构如下:1 2 3 4 5 6 7 8lchild 2 3 0 0 6 0 0 0data A B C D E F G Hrchild 0 5 4 0 8 7 0 0其中lchild,rchild分别为结点的左、右孩子指针域,data为结点的数据域。
则该二叉树的高度为( d );第3层有( a )个结点(根结点为第1层)。
A.2 B. 3 C. 4 D. 5(A)/( B)/\(C ) (E )\ / \(D) (F) (H)\(G)20 先序遍历(DLR)图示二叉树可得到( a )的序列。
(A)/\(B) (C)/\\(H) (D) (G)/\(E) (F)\(I)a) A B H D E F I C Gb) H B E D F I A C Gc) H E I F D B G C A21 在有n个结点的二叉树的二叉链表表示中,空指针数( b )。