数据结构查找习题及答案汇编
数据结构考试题及答案
数据结构考试题及答案一、选择题(每题2分,共20分)1. 以下哪个不是线性数据结构?A. 数组B. 链表C. 树D. 图2. 在一个单链表中,删除一个节点的操作需要知道该节点的:A. 地址B. 值C. 索引D. 前驱节点的引用3. 栈(Stack)是一种:A. 线性表B. 树状结构C. 图结构D. 散列表4. 哈希表解决冲突最常用的方法是:A. 排序B. 链地址法C. 再散列D. 除留余数法5. 以下哪个排序算法是稳定的?A. 快速排序B. 冒泡排序C. 选择排序D. 堆排序二、简答题(每题10分,共30分)1. 简述数组和链表的区别。
2. 解释二叉搜索树的基本概念及其优势。
3. 什么是递归?请给出一个简单的递归算法例子。
三、计算题(每题25分,共50分)1. 给定一个无序数组,请写出一个时间复杂度为O(n log n)的排序算法,并说明其工作原理。
2. 描述如何使用队列来实现一个简单的文本编辑器的撤销和重做功能。
四、编程题(共30分)编写一个函数,该函数接受一个整数数组作为参数,返回数组中所有元素的和。
如果数组为空,返回0。
答案一、选择题1. 答案:C(树和图都是非线性结构)2. 答案:D(需要前驱节点的引用来删除节点)3. 答案:A(栈是一种后进先出的特殊线性表)4. 答案:B(链地址法是解决哈希冲突的常用方法)5. 答案:B(冒泡排序是稳定的排序算法)二、简答题1. 数组和链表的区别:- 数组是连续的内存空间,链表是非连续的。
- 数组的索引访问速度快,链表需要遍历。
- 数组的大小固定,链表动态可变。
2. 二叉搜索树的基本概念及其优势:- 二叉搜索树是一种特殊的二叉树,左子树上所有节点的值小于它的根节点的值,右子树上所有节点的值大于它的根节点的值。
- 优势:支持快速的查找、插入和删除操作。
3. 递归是函数自己调用自己的过程。
例如,计算n的阶乘的递归算法: ```cint factorial(int n) {if (n <= 1) return 1;return n * factorial(n - 1);}```三、计算题1. 快速排序算法:- 选择一个元素作为“基准”(pivot)。
数据结构(查找)练习题与答案
1、静态查找表和动态查找表的区别是( )。
A.所包含的数据元素的类型不同B.施加其上的操作不同C.它们的逻辑结构相同D.以上都不对正确答案:B解析:B、若在查找的同时对表做修改操作(如插入和删除),则相应的查找表称之为动态查找表。
若在查找中不涉及表的修改操作,则相应的查找表称之为静态查找表。
2、顺序查找法适合于存储结构为( )的线性表。
A.索引存储B.压缩存储C.顺序存储或者链式存储D.哈希存储正确答案:C解析:C、顺序查找可以从前向后或者从后向前挨次查找,既适合于顺序存储结构也适合于链式存储结构。
3、采用顺序查找方法查找长度为n 的顺序表时,在等概率时成功查找的平均查找长度为( )。
A.(n-1)/2B.nC.n/2D.(n+1)/2正确答案:D解析:D、顺序查找时,元素ai 需i 次比较,成功查找的平均查找长度=(1+2+ …+n)/n=(n+1)/2。
4、采用顺序查找方法查找长度为n 的顺序表时,在等概率时不成功查找的平均查找长度为( )。
A.(n-1)/2B.nC.n/2D.(n+1)/2正确答案:B解析:B、当查找的元素不在线性表中时,均需要n 次元素之间的比较。
5、适合于折半查找的数据组织方式是( )。
A.以链表存储的有序线性表B.以顺序表存储的有序线性表C.以链表存储的线性表D.以顺序表存储的线性表正确答案:B解析:B、折半查找的数据必须是有序的。
此外,折半查找中需要确定查找区间,这要求存储结构最好具有随机存取特性,而顺序表满足这个特性。
6、采用折半查找方法查找长度为n 的线性表,当n 很大时,在等概率时不成功查找的平均查找长度为( )。
n)A. O(nlog2B. O(n2)C. O(n)n)D. O(log2正确答案:D解析:D、采用折半查找时,若n 很大,对应的判定树可以看成是一棵满二叉树,失败节点(外部节点)集中在最下一层,落在每一个失败节点时比较的次都均为log n。
27、设有100 个元素的有序表,采用折半查找方法,在等概率时成功时最大的比较次数是( )。
数据结构试题及答案(十套)
一、单选题(每题 2 分,共20分)1.对一个算法的评价,不包括如下(B )方面的内容。
A.健壮性和可读性B.并行性C.正确性D.时空复杂度2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。
A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3.对线性表,在下列哪种情况下应当采用链表表示?( )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( C )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35.AOV网是一种()。
A.有向图B.无向图C.无向无环图D.有向无环图6.采用开放定址法处理散列表的冲突时,其平均查找长度()。
A.低于链接法处理冲突 B. 高于链接法处理冲突C.与链接法处理冲突相同D.高于二分查找7.若需要利用形参直接访问实参时,应将形参变量说明为()参数。
A.值B.函数C.指针D.引用8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。
A.行号B.列号C.元素值D.非零元素个数9.快速排序在最坏情况下的时间复杂度为()。
A.O(log2n) B.O(nlog2n)C.0(n) D.0(n2)10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A. O(n)B. O(1)C. O(log2n)D. O(n2)二、运算题(每题 6 分,共24分)1.数据结构是指数据及其相互之间的______________。
当结点之间存在M对N (M:N)的联系时,称这种结构为_____________________。
(完整版)数据结构试题及答案
(完整版)数据结构试题及答案《数据结构》⾃考复习思考试题○10⼀、单项选择题(本⼤题共15⼩题,每⼩题2分,共30分)在每⼩题列出的四个备选项中只有⼀个是符合题⽬要求的,请将其代码填写在题后的括号内。
错选、多选或未选均⽆分。
1. 若将数据结构形式定义为⼆元组(K,R),其中K是数据元素的有限集合,则R是K上( ) A. 操作的有限集合 B. 映象的有限集合C. 类型的有限集合D. 关系的有限集合2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( )A. n-i+1B. iC. i+1D. n-i3. 若不带头结点的单链表的头指针为head,则该链表为空的判定条件是( )A. head==NULLB. head->next==NULLC. head!=NULLD. head->next==head4. 引起循环队列队头位置发⽣变化的操作是( )A. 出队B. ⼊队C. 取队头元素D. 取队尾元素5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进⾏,则不.可能出现的出栈序列是( )A. 2,4,3,1,5,6B. 3,2,4,1,6,5C. 4,3,2,1,5,6D. 2,3,5,1,6,46. 字符串通常采⽤的两种存储⽅式是( )A. 散列存储和索引存储B. 索引存储和链式存储C. 顺序存储和链式存储D. 散列存储和顺序存储7. 设主串长为n,模式串长为m(m≤n),则在匹配失败情况下,朴素匹配算法进⾏的⽆效位移次数为( )A. mB. n-mC. n-m+1D. n8. ⼆维数组A[12][18]采⽤列优先的存储⽅法,若每个元素各占3个存储单元,且第1个元素的地址为150,则元素A[9][7]的地址为( )A. 429B. 432.C. 435D. 4389. 对⼴义表L=((a,b),(c,d),(e,f))执⾏操作tail(tail(L))的结果是( )A. (e,f)B. ((e,f))C. (f)D. ( )10. 下列图⽰的顺序存储结构表⽰的⼆叉树是( )11. n个顶点的强连通图中⾄少含有( )A. n-1条有向边B. n条有向边C. n(n-1)/2条有向边D. n(n-1)条有向边12. 对关键字序列(56,23,78,92,88,67,19,34)进⾏增量为3的⼀趟希尔排序的结果为( )A. (19,23,56,34,78,67,88,92)B. (23,56,78,66,88,92,19,34)C. (19,23,34,56,67,78,88,92)D. (19,23,67,56,34,78,92,88)13. 若在9阶B-树中插⼊关键字引起结点分裂,则该结点在插⼊前含有的关键字个数为( ) A. 4 B. 5C. 8D. 914. 由同⼀关键字集合构造的各棵⼆叉排序树( )A. 其形态不⼀定相同,但平均查找长度相同B. 其形态不⼀定相同,平均查找长度也不⼀定相同C. 其形态均相同,但平均查找长度不⼀定相同.D. 其形态均相同,平均查找长度也都相同15. ISAM⽂件和VSAM⽂件的区别之⼀是( )A. 前者是索引顺序⽂件,后者是索引⾮顺序⽂件B. 前者只能进⾏顺序存取,后者只能进⾏随机存取C. 前者建⽴静态索引结构,后者建⽴动态索引结构D. 前者的存储介质是磁盘,后者的存储介质不是磁盘⼆、填空题(本⼤题共10⼩题,每空2分,共20分)16. 数据的逻辑结构在计算机存储器内的表⽰,称为数据的____________。
数据结构试题及答案(10套)
数据结构试题及答案(10套)数据结构试题及答案(10套)根据您的需求,我为您准备了10套数据结构试题及答案。
每套试题包含以下几个部分:选择题、填空题、编程题及答案解析。
下面是试题的具体内容:第一套试题:选择题:1. 在数据结构中,什么是栈?A. 先进先出(FIFO)的数据结构B. 后进先出(LIFO)的数据结构C. 随机访问的数据结构D. 无序排列的数据结构2. 以下哪种操作与队列的特性不相符?A. 入队操作B. 出队操作C. 查找操作D. 获取队首元素填空题:1. ______ 是一种动态集合,支持插入、删除和查找等操作。
2. 在二叉搜索树中,中序遍历的结果是________。
编程题:实现一个栈的数据结构,并包含以下操作:- push(x):将元素 x 压入栈中- pop():删除栈顶的元素并返回该元素- top():获取栈顶元素的值- empty():检查栈是否为空答案解析:选择题:B、C填空题:1. 集合 2. 升序序列编程题:略第二套试题:选择题:1. 以下哪个数据结构是一种广度优先搜索的应用?A. 栈B. 队列C. 堆D. 链表2. 在链表中,如果要删除一个节点,只给出该节点的指针,那么需要通过什么方式完成删除操作?A. 直接删除该节点B. 指向该节点的前一个节点的指针C. 指向该节点的后一个节点的指针D. 无法完成删除操作填空题:1. 树是一种________的数据结构。
2. 二叉树每个节点最多有______个子节点。
编程题:实现一个队列的数据结构,并包含以下操作:- enqueue(x):将元素 x 入队- dequeue():删除队首的元素并返回该元素- peek():获取队首元素的值- is_empty():检查队列是否为空答案解析:选择题:B、B填空题:1. 分层组织 2. 2编程题:略(以下部分省略)通过以上的题目,您可以对数据结构的知识点进行综合练习和复习。
每套试题包含了不同难度和类型的题目,能够帮助您全面了解和掌握数据结构的概念和操作。
数据结构习题(包含全部答案解析)
数据结构习题集(自编)第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的()和运算的学科。
A.结构B.关系 C.运算 D.算法2.在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.逻辑结构和存储结构3.线性表的逻辑顺序和存储顺序总是一致的,这种说法()。
A.正确B.不正确 C.无法确定 D.以上答案都不对4.算法分析的目的是()。
A.找出算法的合理性 B.研究算法的输人与输出关系C.分析算法的有效性以求改进 D.分析算法的易懂性5. 算法的时间复杂度取决于()A.问题的规模B待处理数据的初态 C. A和B6.一个算法应该是()。
A.程序B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.7. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法与为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的8.以下与数据的存储结构无关的术语是()。
A.循环队列 B. 链表 C. 哈希表 D. 栈9.在下面的程序段中,对x的赋值语句的频度为()for(i=0;i<n;i++)for(j=0;j<n;j++)x=x+1;nA. 2n B.n C.n2 D.log210.以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队列 D.栈11. 下列数据中,()是线性数据结构。
A.哈夫曼树 B.有向无环图 C. 二叉排序树 D. 栈12.以下属于逻辑结构的是()。
A.顺序表 B. 哈希表 C.有序表 D. 单链表二、填空题1、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。
(数据、数据)2、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。
数据结构考试试题库含答案解析
数据结构考试试题库含答案解析数据结构习题集含答案⽬录⽬录 (1)选择题 (2)第⼀章绪论 (2)第⼆章线性表 (4)第三章栈和队列 (6)第四章串 (7)第五章数组和⼴义表 (8)第六章树和⼆叉树 (8)第七章图 (11)第⼋章查找 (13)第九章排序 (14)简答题 (19)第⼀章绪论 (19)第⼆章线性表 (24)第三章栈和队列 (26)第四章串 (28)第五章数组和⼴义表 (29)第六章树和⼆叉树 (31)第七章图 (36)第⼋章查找 (38)第九章排序 (39)编程题 (41)第⼀章绪论 (41)第⼆章线性表 (41)第三章栈和队列 (52)第四章串 (52)第五章数组和⼴义表 (52)第六章树和⼆叉树 (52)第七章图 (52)第⼋章查找 (52)第⼀章绪论1.数据结构这门学科是针对什么问题⽽产⽣的?(A )A、针对⾮数值计算的程序设计问题B、针对数值计算的程序设计问题C、数值计算与⾮数值计算的问题都针对D、两者都不针对2.数据结构这门学科的研究内容下⾯选项最准确的是(D )A、研究数据对象和数据之间的关系B、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3.某班级的学⽣成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那么下⾯关于数据对象、数据元素、数据项描述正确的是(C )A、某班级的学⽣成绩表是数据元素,90分是数据项B、某班级的学⽣成绩表是数据对象,90分是数据元素C、某班级的学⽣成绩表是数据对象,90分是数据项D、某班级的学⽣成绩表是数据元素,90分是数据元素4.*数据结构是指(A )。
A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义5.数据在计算机存储器内表⽰时,物理地址与逻辑地址不相同,称之为(C )。
A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构6.算法分析的⽬的是(C )A、找出数据的合理性B、研究算法中的输⼊和输出关系C、分析算法效率以求改进D、分析算法的易懂性和⽂档型性7.算法分析的主要⽅法(A )。
数据结构查找习题及答案
第9章查找一、单选题1.对一棵二叉搜索树按〔〕遍历,可得到结点值从小到大的排列序列。
A. 先序B. 中序C. 后序D. 层次2.从具有n个结点的二叉搜索树中查找一个元素时,在平均情况下的时间复杂度大致为〔〕。
A. O(n)B. O(1)C. O(logn)D. O(n2)3.从具有n个结点的二叉搜索树中查找一个元素时,在最坏情况下的时间复杂度为〔〕。
A. O(n)B. O(1)C. O(logn)D. O(n2)4.在二叉搜索树中插入一个结点的时间复杂度为〔〕。
A. O(1)B. O(n)C. O(logn)D. O(n2)5.分别以下列序列构造二叉搜索树,与用其它三个序列所构造的结果不同的是〔〕。
A.〔100,80,90,60,120,110,130〕B.〔100,120,110,130,80,60,90〕C.〔100,60,80,90,120,110,130〕D.〔100,80,60,90,120,130,110〕6.在一棵AVL树中,每个结点的平衡因子的取值X围是〔〕。
A. -1~1B. -2~2C. 1~2D. 0~17.根据一组关键字〔56,42,50,64,48〕依次插入结点生成一棵A VL树,当插入到值为〔〕的结点时需要进行旋转调整。
A. 42B. 50C. 64D. 488.深度为4的A VL树至少有〔〕个结点。
A.9 B.8C.7D.69.一棵深度为k的A VL树,其每个分支结点的平衡因子均为0,则该平衡二叉树共有〔〕个结点。
A.2k-1-1B.2k-1+1C.2k-1D.2k10.在A VL树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0,右孩子的平衡因子为1,则应作〔〕型调整以使其平衡。
A. LLB. LRC. RLD. RR二、判断题1.二叉搜索树的任意一棵子树中,关键字最小的结点必无左孩子,关键字最大的结点必无右孩子。
2.二叉搜索树中每个结点的关键字值大于其左非空子树〔若存在的话〕所有结点的关键字值,且小于其右非空子树〔若存在的话〕所有结点的关键字值。
数据结构【经典题库】含答案
数据结构【经典题库】含答案前言数据结构是计算机科学中非常重要的一个领域,它研究的是如何在计算机中存储和组织数据,以及如何高效地操作这些数据。
对于计算机程序员来说,掌握数据结构是非常关键的。
本文将为你提供一些经典的数据结构题目,并附上详细的答案解析。
一、数组1. 题目描述:给定一个已排序的数组,通过编写代码,在该数组中查找特定元素。
若找到,返回其索引位置;若未找到,返回-1。
答案解析:使用二分查找算法可以很高效地解决这个问题。
通过比较中间元素和目标元素的大小来确定下一步查找的方向,直到找到目标元素或确定目标元素不存在。
2. 题目描述:给定一个整数数组和一个目标值,编写一个函数来判断数组中是否存在两个数之和等于目标值。
答案解析:可以使用哈希表来解决这个问题。
遍历数组,将每个元素与目标值的差值存储在哈希表中。
如果后面的元素在哈希表中找到了与之匹配的值,则返回true;否则,将当前元素存储在哈希表中。
二、链表1. 题目描述:给定一个链表,删除链表的倒数第n个节点,并返回链表的头结点。
答案解析:使用快慢指针的思想可以解决这个问题。
定义两个指针,初始时它们都指向链表的头结点,然后让一个指针先移动n个位置。
接着,两个指针同时移动,直到第一个指针到达链表末尾。
此时,第二个指针指向的节点就是要删除的节点的前一个节点,通过修改指针的指向即可完成删除操作。
2. 题目描述:给定两个有序链表的头结点,将它们合并为一个有序链表并返回头结点。
答案解析:可以使用递归的方式来解决这个问题。
比较两个链表的当前节点,将较小的节点作为合并后链表的节点,并连接到下一个节点,然后递归地调用合并后的链表和剩余的链表。
三、栈和队列1. 题目描述:实现一个栈,能够提供push、pop、top和getMin操作的常数时间复杂度。
答案解析:可以使用辅助栈的方式来实现。
辅助栈用来存储当前栈中的最小值,每次压入元素时比较新元素和当前最小值的大小,如果新元素更小,则将新元素也压入辅助栈。
数据结构习题参考答案(全)
4.2 设三维数组的维度分别是 m, n, l;每个元素占 k 个存储单元。 Loc(A[i][j][k]) = Loc(A[0][0][0]) + (i * n * l + j * l) * k 4.6
4.7 col num k 0 1 0 1 0 1 2 2 1 3 1 3 4 2 4
5.2 (1)无序树:9 棵 (2)有序树:12 棵 (3)二叉树:30 棵 5.4 (1)2k-1
5 2 0
-1 0
8 3 6 4
3 4 5 6
10
1
1
2
7
7 8
9
9
11
10 11
ASL 成功=1/12(1*1+2*2+3*4+4*5)=37/12 ASL 失败=1/13(3*3+4*10)=49/13
7.1
7.3
7.16 (1)
f b a
7.17 (1) 删除 a
h k r de g ij m sx
B
C K
9 12 1 E 0 F 5 5 0 1 C 2 3 A B
(2)WPL = 91 (3)各字符的编码 A:1010 B:1011 C:100 D:00 E:01 F:11
6.5 template <class T> bool SeqList<T>::Search1(T x)const { return SearchRec(x, 0); } template <class T> bool SeqList<T>::SearchRec(T x, int i)const { if (i >= n) return false; if (elements[i] == x) return true; else return SearchRec(x, i+1); } 6.6 template <class T> bool SingleList<T>::Search1(T x) const { Node<T> *p = first; while (p && p->element < x) { p = p->link; } if (p == NULL || p->element > x) return false; return true; } 6.10
数据结构(查找)习题与答案
一、单选题1、关于折半查找,以下说法正确的是 ( ) 。
A.待查找表必须有序,可以顺序方式存储,也可以链表方式存储B.待查找表必须有序,且只能以顺序方式存储C.待查找表必须有序,而且必须从小到大排列D.待查找表必须有序且表中数据必须是整型正确答案:B2、具有12个关键字的有序表,折半查找的平均查找长度()。
A.2.5B.37/12C.10/12D.25/12正确答案:B3、以下适合用分块查的数据集是 ( ) 。
A.数据分成大小相等的若干块,块内数据有序B.数据分成若干块,每块(除最后一块外)中数据个数需相同C.数据分成若干块,块内数据必须有序,块间不必有序D.数据分成若干块,块内数据不必有序,但块间必须有序正确答案:D4、分别以下列序列构造二叉排序树,以下哪一个和其他三个不同( ) 。
A.(90,65,25,110,100,107,87,85)B.(90,65,110,100,107,87,85,25)C. (90,110,65,25,87,100,107,85)D.(90,100,65,25,87,85,110,107)正确答案:D5、关于哈希查找,以下说法不正确的是( ) 。
A.哈希查找中,记录的存储地址是计算出来的,因而不需要比较B.链地址法和线性探测再散列都是解决冲突的方法C.装填因子越大,越容易产生冲突D.哈希查找有两个关键问题:哈希函数和处理冲突的方法正确答案:A6、对长度为4的顺序表进行查找,查找顺序从前向后。
若查找前面2个元素的概率均为1/8,查找后2个元素的概率均为3/8,则查找任一元素的平均查找长度为( )。
A.19/4B.39/8C.5.5D.3正确答案:D7、由同一关键字集合构造的各棵二叉排序树( )。
A.形态相同,但平均查找长度不一定相同B.形态和平均查找长度都相同C.形态不一定相同,但平均查找长度相同D.形态和平均查找长度都不一定相同正确答案:D8、100个元素进行折半查找,查找成功时最大的比较次数是()。
数据结构试题汇编带答案
《数据结构》习题汇编一、单项选择题1. 在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2. 数据结构在计算机内存中的表示是指()。
A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系3. 在数据结构中,与所使用的计算机无关的是数据的()结构。
A.逻辑B.存储C.逻辑和存储D.物理4.计算机算法指的是(①),它必须具备输入、输出和(②)等5个特性。
①A.计算方法 B.排序方法C.解决问题的有限运算序列D.调度方法②A.可行性、可移植性和可扩充性 B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性5.在一个长度为n的顺序表中向第i个元素(l W i W n+1)位置插入一个新元素时,需要从后向前依次后移()个元素。
A. n-iB. n-i+1C. n-i-1D. i6.在一个长度为n的顺序表中删除第i个元素(i W i W n)时,需要从前向后依次前移()个元素。
A. n-iB. n-i+1C. n-i-1D. i7.在一个长度为n的顺序表的表尾插入一个新元素的渐进时间复杂度为()。
A. O(n)B. O(1)C. O(n2)D. O(log2n)8.在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为()。
A. O(n)B. O(n/2)C. 0(1)D. O(n2)9.不带头结点的单链表first为空的判定条件是:()A. first == NULL;B. first->next == NULL;C. first->next == first;D. first != NULL;10.带头结点的单链表first为空的判定条件是:()A. first == NULL;B. first->next == NULL;C. first->next == first;D. first != NULL;11.设单链表中结点的结构为(data, next)。
数据结构习题(包含全部答案解析)
数据结构习题(包含全部答案解析)数据结构习题(包含全部答案解析)1. 塔的问题题目描述:有三个塔,分别是A、B和C,A塔上有n个盘子,按照从小到大的顺序叠放。
现在要将这些盘子从A塔移动到C塔,并且每次只能移动一个盘子,并且在移动过程中保持大盘子在下,小盘子在上的顺序。
求移动的步骤。
解析:这道题可以使用递归来解决。
将问题分解为两个子问题:将n-1个盘子从A塔移动到B塔,然后将最后一个盘子从A塔移动到C 塔,最后再将n-1个盘子从B塔移动到C塔。
步骤如下:1)如果n等于1,直接将盘子从A塔移动到C塔;2)否则,执行以下步骤:a) 将n-1个盘子从A塔移动到B塔,使用C塔作为中转塔;b) 将最后一个盘子从A塔移动到C塔;c) 将n-1个盘子从B塔移动到C塔,使用A塔作为中转塔。
2. 链表问题题目描述:给定一个链表,判断链表是否存在环。
解析:这道题可以使用快慢指针的思想来解决。
定义两个指针fast和slow,初始时都指向链表的头节点。
fast指针每次向后移动两个节点,slow指针每次向后移动一个节点。
如果链表中存在环,则fast指针一定会在某个时刻追上slow指针。
步骤如下:1)定义两个指针fast和slow,初始时都指向链表的头节点;2)使用一个while循环,判断条件是fast指针不为空且其下一个节点也不为空;3)在循环中,fast指针每次向后移动两个节点,slow指针每次向后移动一个节点;4)如果fast指针和slow指针相遇,则链表存在环,返回true;5)如果fast指针和slow指针永远不相遇,则链表不存在环,返回false。
3. 栈的应用题目描述:给定一个只包含'('和')'的字符串,判断该字符串是否是有效的括号序列。
解析:这道题可以使用栈来解决。
遍历字符串的每一个字符,如果是左括号,将其压入栈中;如果是右括号,判断栈顶的字符是否与该右括号匹配,若匹配则出栈,若不匹配则该字符串不是有效的括号序列。
数据结构图,查找,内排序的练习及答案
数据结构图,查找,内排序的练习及答案数据结构课后练习习题要求:此次练习不要求上交,只是帮助⼤家掌握知识点,便于复习。
第⼋章图⼀.单项选择题(20分)1. 带权有向图G ⽤邻接矩阵A 存储,则Vi 的⼊度等于A 中___D______A. 第i ⾏⾮∞的元素只和B. 第i 列⾮∞的元素之和C. 第i ⾏⾮∞且⾮0的元素之和D. 第i 列⾮∞且⾮0的元素个数2. ⽆向图的邻接矩阵是⼀个___A____A. 对称矩阵B. 零矩阵C. 上三⾓阵D. 对⾓矩阵3. 在⼀个⽆向图中,所有顶点的度之和等于边数的__C____倍A. 1/2B. 1C. 2D. 44. ⼀个有n 个顶点的⽆向图最多有___C____条边。
A. nB. n(n-1)C. n(n-1)/2D.2n5. 对于⼀个具有n 个顶点的⽆向图,若采⽤邻接矩阵表⽰,则该矩阵⼤⼩是__D_____A. nB. 2)1(?nC. n-1D. 2n6. ⼀个有向图G 的邻接表存储如右图所⽰,现按深度优先搜索遍历,从V1出发,所得到的顶点序列是___B_____。
A. 1,2,3,4,5B. 1,2,3,5,4C. 1,2,4,5,3D. 1,2,5,3,47. 对右图所⽰的⽆向图,从顶点V1开始进⾏深度优先遍历,可得到顶点访问序列__A______(提⽰:可先画出邻居表图再遍历)A. 1 2 4 3 5 7 6B. 1 2 4 3 5 6 7C. 1 2 4 5 6 3 7D. 1 2 3 4 5 6 78. 如果从⽆向图的任⼀顶点出发进⾏⼀次深度优先搜索即可访问所有顶点,则该图⼀定是__B_____A. 完全图B. 连通图C.有回路D. ⼀棵树9. 任何⼀个⽆向连通图___B___最⼩⽣成树(提⽰:注意最⼩⽣成树的定义,此题易错)A. 只有⼀棵B. ⼀棵或多棵C. ⼀定有多棵D.可能不存在11. 若图的邻接矩阵中主对⾓线上的元素全是0,其余元素全是1,则可以断定该图⼀定是_D_____。
数据结构习题(含答案)
第一章绪论一、填空题1.数据是描述客观事物的数、字符以及所有能输入到计算机且能够被计算机程序加工处理的符号集合。
_________是数据的基本单位;___________是数据的最小单位。
通常被计算机加工处理的数据不是孤立无关的,而是彼此之间存在着某种联系,将这种数据间的联系称为________。
2.数据结构进行形式化定义时,可以从逻辑上认为数据结构DS是_________的集合D和D上_________的集合R所构成的二元组:DS=(D,R)。
3.已知某数据结构的二元组形式表示为:A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>}。
则此数据结构属于_____________结构。
4.一个算法的时间复杂度通常用问题规模大小的函数来表示,当一个算法的时间复杂度与问题规模n大小无关时,则表示为__________;成正比关系时,则表示为___________;成对数关系时,则表示为___________;成平方关系时,则表示为__________。
5.数据结构的逻辑结构包括_____________、树型结构和图型结构三种类型,其中树型结构和图型结构合称为_____________;数据结构的存储结构主要包括____________和____________两种类型。
6.线性结构的特点是:第一个结点_______前驱结点,其余结点有且仅有_______个前驱结点;最后一个结点_______后继结点,其余每个结点有且仅有_______个后继结点。
7.树型结构的特点是:根结点没有________结点,其余每个结点有且仅有________个前驱结点;叶子结点_________后继结点,其余结点可以有_________个后继结点。
数据结构查找与排序练习题答案——查找排序练习题答案
数据结构查找与排序练习题答案一、选择题1.对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( ) A.(N+1)/2 B. N/2 C. N D. [(1+N)*N ]/22.适用于折半查找的表的存储方式及元素排列要求为( )A.链接方式存储,元素无序 B.链接方式存储,元素有序C.顺序方式存储,元素无序D.顺序方式存储,元素有序3.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( )A.必定快 B.不一定 C. 在大部分情况下要快 D. 取决于表递增还是递减4.有一个长度为12的有序表,按二分查找法对该表进行查找,在表内各元素等概率情况下查找成功所需的平均比较次数为()。
A.35/12 B.37/12 C.39/12 D.43/125.折半查找的时间复杂性为()A. O(n2)B. O(n)C. O(nlogn)D. O(logn)6.对有18个元素的有序表作折半查找,则查找A[3]的比较序列的下标为()A.1,2,3B.9,5,2,3C.9,5,3D.9,4,2,37.设有序表的关键字序列为{1,4,6,10,18,35,42,53,67,71,78,84,92,99},当用二分查找法查找健值为84的结点时,经()次比较后查找成功。
A.2B. 3C. 4D.128.用n个键值构造一棵二叉排序树,最低高度为()A.n/2B.、nC.lognD.logn+19.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( ) A.(100,80, 90, 60, 120,110,130)B.(100,120,110,130,80, 60, 90)C.(100,60, 80, 90, 120,110,130)D.(100,80, 60, 90, 120,130,110)10.设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链地址法构造散列表,散列函数为H(key)=key% 13,散列地址为1的链中有()个记录。
数据结构(含答案)
数据结构(含答案)数据结构综合练习⼀、选择题1.数据得存储结构包括顺序、链接、散列与( )4种基本类型。
A索引B数组C集合D向量2.下⾯程序得时间复杂性得量级为。
int i=0,s1=0,s2=0;while(i++{if (i%2)s1+=i;else s2+=i;}A、O(1)B、O(1bn)C、O(n)D、O(2n)3.下⾯程序段得时间复杂度为( )。
for(int i=0;ifor(int j=0;ja[i][j]=i*j;A、O(m2)B、O(n2)C、O(m+n)D、O(m*n)4.在⼀个长度为n得顺序存储结构得线性表中,向第i个元素(1≤i≤n+1)位置插⼊⼀个元素时,需要从后向前依次后移( )个元素。
A、niB、ni+lC、nilD、i5.在⼀个长度为n得顺序存储结构得线性表中,删除第i个元素(1≤i≤n+1)时,需要从前向后依次后移( )个元素。
A、niB、ni+lC、nilD、i6.在⼀个长度为n得线性表中,删除值为x得元素时需要⽐较元素与移动元素得总次数为。
A、(n+1)/2B、n/2C、nD、n+17.在⼀个顺序表中得任何位置插⼊⼀个元素得时间复杂度为。
A、O(n)B、O(n/2)C、O(1)D、O(n2)8、线性表得链式存储⽐顺序存储更有利于进⾏操作。
A、查找B、表尾插⼊与删除C、按值插⼊与删除D、表头得插⼊与删除9、线性表得顺序存储⽐链式存储更有利于进⾏操作。
A、查找B、表尾插⼊与删除C、按值插⼊与删除D、表头得插⼊与删除10、在⼀个表头指针为ph得单链表中,若要向表头插⼊⼀个由指针p指向得结点,则应执⾏( )操作。
A、ph=p; p>next=ph;B、p>next=ph; ph=p;C、p>next=ph; p=ph;D、p>next=ph>next; ph>next=p;11、在⼀个表头指针为ph得单链表中,若要在指针q所指结点得后⾯插⼊⼀个由指针p所指向得结点,则执⾏操作。
数据结构(查找)习题与答案
一、单选题1、对于查找表(13,27,38,49,50 ,65,76,97)采用顺序查找,在等概率情况下查找成功的平均查找长度是()。
A.4.5B.9C.4D.8正确答案:A2、在关键字序列(10,20,30,40,50)中采用折半查找20,依次与()关键字进行了比较。
A.30,10,20B.20C.30,20D.40,20正确答案:A3、在关键字序列(8,12,20,25,33)中,采用二分查找25,关键字之间比较需要()次。
A.2B.1C.3D.4正确答案:A4、对于长度为11的有序表,按折半查找,在等概率情况下查找成功时,其平均查找长度是()。
A.3B.4C.1D.2正确答案:A5、对于长度为11的有序表,按折半查找,在查找失败时,待查找值域表中关键字比较的次数是()。
A.3次或4次B.2次或3次C.4次或5次D.1次或2次正确答案:A6、对于长度为n的有序表,按折半查找,在等概率情况下查找成功平均时间复杂度是()。
A.O(㏒n)B.O(n)C.O(1)D.O(n㏒n)正确答案:A7、索引顺序查找也叫分块查找,其查找过程分为是()个步骤。
A.1B.3C.4D.2正确答案:D8、对于长度为n的关键字序列创建一颗二叉排序树,该树可能的最大高度是()。
A.n+1B.n-1C.㏒nD.n正确答案:D9、对于关键字序列(30,25,40,35,45),按序列次序创建一颗二叉排序树,在等概率情况下查找成功时,其平均查找长度是()。
A.8/3B.11/5C.8D.11正确答案:B10、影响散列查找时间效率的主要因素()。
A.仅与散列表中实际元素个数相关B.仅与散列表长相关C.与散列表长和散列表中实际元素个数均相关D.与散列表长和散列表中实际元素个数均不相关正确答案:C11、一组关键字序列为(27,17,9,19,16,43,53,8,63),用哈希函数H(key)=key MOD 8和链地址法处理冲突,查找关键字43,与散列表中关键字进行了()次比较。
数据结构考试题库及答案
数据结构考试题库及答案一、选择题1. 下列哪个不是线性结构?A. 栈B. 队列C. 双向链表D. 树答案:D2. 在顺序存储结构中,数据元素的物理位置与逻辑位置相同的是哪种结构?A. 栈B. 队列C. 线性表D. 树答案:C3. 下列哪种排序算法的时间复杂度是O(nlogn)?A. 冒泡排序B. 选择排序C. 快速排序D. 插入排序答案:C4. 在二叉树中,度为0的节点称为()。
A. 根节点B. 内节点C. 叶子节点D. 父节点答案:C5. 下列哪种图的邻接矩阵是对称的?A. 有向图B. 无向图C. 有向连通图D. 无向连通图答案:B二、填空题6. 在链表中的每个节点至少包含两个部分:一个是存储数据元素的数据域,另一个是存储下一个节点地址的指针域。
7. 在顺序表中,元素之间的逻辑关系是由它们的相对位置来体现的。
8. 快速排序的基本思想是:在待排序序列中选取一个基准元素,将序列中所有小于基准元素的元素放在基准元素前面,所有大于基准元素的元素放在基准元素后面。
9. 图中的每个节点称为顶点,顶点之间的连线称为边。
10. 在哈希表中,哈希函数的目的是将关键字映射到散列地址。
三、判断题11. 在顺序表中插入一个元素的时间复杂度为O(1)。
()答案:错误。
插入一个元素的时间复杂度为O(n),因为可能需要移动其他元素。
12. 在链表中删除一个元素的时间复杂度为O(n)。
()答案:错误。
删除一个元素的时间复杂度为O(1),只要找到该元素的前一个节点即可。
13. 二分查找只适用于有序的顺序表。
()答案:正确。
14. 在二叉树中,任意节点的度数不会超过2。
()答案:正确。
15. 图的邻接表表示法比邻接矩阵表示法更加节省空间。
()答案:正确。
四、应用题16. 请用C语言实现一个顺序栈的数据结构,并给出入栈、出栈和判断栈空的操作。
答案:```c#define MAXSIZE 100typedef struct {int data[MAXSIZE];int top;} SeqStack;// 初始化栈void InitStack(SeqStack s) {s->top = -1;}// 判断栈是否为空int StackEmpty(SeqStack s) {return s->top == -1;}// 入栈int Push(SeqStack s, int x) {if (s->top == MAXSIZE - 1) {return 0; // 栈满}s->data[++s->top] = x;return 1;}// 出栈int Pop(SeqStack s, int x) {if (s->top == -1) {return 0; // 栈空}x = s->data[s->top--];return 1;}```17. 请简述二分查找的基本思想。
十套数据结构试题及答案
数据构造试卷〔一〕一、单项选择题〔每题 2 分,共20分〕1.栈和队列的共同特点是( a )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进展插入运算时( d ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据构造中哪一个是非线性构造?( d )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
cA.688 B.678 C.692 D.6965.树最适合用来表示( c )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( d ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.假设有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进展二分查找,那么查找A[3]的比拟序列的下标依次为( c d)A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进展快速排序,所需要的辅助存储空间大致为 cA. O〔1〕B. O〔n〕C. O〔1og2n〕D. O〔n2〕9.对于线性表〔7,34,55,25,64,46,20,10〕进展散列存储时,假设选用H〔K〕=K %9作为散列函数,那么散列地址为1的元素有〔 c d〕个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( a )条边才能确保是一个连通图。
二、填空题〔每空1分,共26分〕1.通常从四个方面评价算法的质量:____时间正确性_____、____占用内存_易读性____、____复杂度__强壮性___和_____准确度_ 高效率___。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第9章查找一、单选题1.对一棵二叉搜索树按()遍历,可得到结点值从小到大的排列序列。
A. 先序B. 中序C. 后序D. 层次2.从具有n个结点的二叉搜索树中查找一个元素时,在平均情况下的时间复杂度大致为()。
A. O(n)B. O(1)C. O(logn)D. O(n2)3.从具有n个结点的二叉搜索树中查找一个元素时,在最坏情况下的时间复杂度为()。
A. O(n)B. O(1)C. O(logn)D. O(n2)4.在二叉搜索树中插入一个结点的时间复杂度为()。
A. O(1)B. O(n)C. O(logn)D. O(n2)5.分别以下列序列构造二叉搜索树,与用其它三个序列所构造的结果不同的是()。
A.(100,80,90,60,120,110,130)B.(100,120,110,130,80,60,90)C.(100,60,80,90,120,110,130)D.(100,80,60,90,120,130,110)6.在一棵AVL树中,每个结点的平衡因子的取值范围是()。
A. -1~1B. -2~2C. 1~2D. 0~17.根据一组关键字(56,42,50,64,48)依次插入结点生成一棵A VL树,当插入到值为()的结点时需要进行旋转调整。
A. 42B. 50C. 64D. 488.深度为4的A VL树至少有()个结点。
A.9 B. 8 C. 7 D. 69.一棵深度为k的A VL树,其每个分支结点的平衡因子均为0,则该平衡二叉树共有()个结点。
A.2k-1-1B.2k-1+1C.2k-1D.2k10.在A VL树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0,右孩子的平衡因子为1,则应作()型调整以使其平衡。
A. LLB. LRC. RLD. RR二、判断题1.二叉搜索树的任意一棵子树中,关键字最小的结点必无左孩子,关键字最大的结点必无右孩子。
2.二叉搜索树中每个结点的关键字值大于其左非空子树(若存在的话)所有结点的关键字值,且小于其右非空子树(若存在的话)所有结点的关键字值。
3.二叉搜索树按照中序遍历将各结点打印出将各结点打印出来,将得到按照由小到大的排列。
4.若二叉搜索树的根结点没有左儿子,则根结点一定是值最小的结点。
5.二叉搜索树一定是满二叉树。
6.从二叉搜索树的根结点一直沿右儿子向下找不一定能找到树中值最大的结点。
7.二叉搜索树的充要条件是任一结点的值均大于其左孩子的值,小于其右孩子的值。
8.若二叉搜索树中关键码互不相同,则其中最小元素和最大元素一定是叶子结点。
9.在任意一棵非空二叉搜索树中,删除某结点后又将其插入,则所得二叉搜索树与原二叉搜索树相同。
10.当向二叉搜索树中插入一个结点,则该结点一定成为叶子结点。
11.A VL树是指左右子树的高度差的绝对值不大于1的二叉树。
12.A VL是一棵二叉树,其树上任一结点的平衡因子的绝对值不大于1。
13.在A VL树中,向某个平衡因子不为零的结点的树中插入一新结点,必引起平衡旋转。
三、填空题1.在一棵二叉搜索树上实施遍历后,其关键字序列是一个有序表。
2.一个无序序列可以通过构造一棵_______而变成一个有序序列,构造树的过程即为对无序序列进行排序的过程。
3.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定________该结点的值,右子树上所有结点的值一定________该结点。
4.从一棵二叉搜索树中查找一个元素时,若元素的值等于根结点的值,则表明_______,若元素的值小于根结点的值,则继续向_______查找,若元素的值大于根结点的值,则继续向________查找。
5.向一棵二叉搜索树中插入一个元素时,若元素的值小于根结点的值,则接着向根结点的________插入,若元素的值大于根结点的值,则接着向根结点的________插入。
6.根据n个元素建立一棵二叉搜索树的时间复杂度大致为________。
7.二叉树中某一结点左子树的深度减去右子树的深度称为该结点的_______。
8.深度为4的平衡二叉树中至少有个结点,至多有个结点。
9.在一棵AVL树中,每个结点的左子树高度与右子树高度之差的绝对值不超过________。
四、应用题1.一棵二叉搜索树的结构如下图所示,结点的值为1~8,请标出各结点的值。
2.若依次输入序列{62,68,30,61,25,14,53,47,90,84}中的元素,生成一棵二叉搜索树。
画出生成后的二叉搜索树(画出生成过程)。
3.依次读入给定的整数序列{7,16,4,8,20,9,6,18,5},构造一棵二叉搜索树,并计算在等概率情况下该二叉搜索树的平均查找长度ASL。
(要求给出构造过程)4.从空二叉树开始,严格按照二叉搜索树的插入算法(不进行平衡旋转),逐个插入关键码{18, 73, 10, 5, 68, 99, 27, 41, 51, 32, 25}构造出一棵二叉搜索树,画出这棵二叉搜索树并写出其前序、后序遍历序列。
5.若一棵二叉搜索树的关键字输入序列为{80,6,10,7,8,25,100,90},请画出该二叉搜索树。
6.设有一组初始记录关键字为(45,80,48,40,22,78),要求构造一棵二叉搜索树并给出构造过程。
7.假定一个关键字序列为(38, 52, 25, 74, 68, 16, 30, 54, 90, 72),画出按序列中元素的次序生成的一棵二叉搜索树,求出其平均查找长度。
8.将数列(24,15,38,27,121,76,130)的各元素依次插入一棵初始为空的二叉搜索树中,请画出最后的结果并求等概率情况下查找成功的平均查找长度。
9.输入一个正整数序列{40, 28, 6, 72, 100, 3, 54, 1, 80, 91, 38},建立一棵二叉搜索树,然后删除结点72,分别画出该二叉树及删除结点72后的二叉树。
10.根据元素插入的先后次序不同,可构成多种形态的二叉搜索树。
请画出4棵含1,2,3,4四个元素且以1为根、深度为3的二叉搜索树。
11.请画出从下面的二叉搜索树中删除关键码40后的结果。
20114062450835456032812.对关键字序列(25, 16, 34, 39, 28, 56),1)画出按此序列生成的二叉搜索树。
2)计算等概率下查找成功时的平均查找长度。
13.输入一个正整数序列(53, 17, 12, 66, 58, 70, 87, 25, 56, 60),试完成下列各题。
(1)按次序构造一棵二叉搜索树BS。
(2)依此二叉搜索树,如何得到一个从大到小的有序序列?(3)假定每个元素的查找概率相等,试计算该二叉搜索树的平均查找长度(4)画出在此二叉搜索树中删除“66”后的树结构。
14.试推导深度为5的平衡二叉树最少包含多少个结点,并画出一棵这样的树。
15.画出在一个初始为空的A VL树中依次插入3, 1, 4, 6, 9, 8, 5, 7时每一插入后A VL树的形态。
若做了某种旋转,说明旋转的类型。
16.给定一个关键字序列4, 5, 7, 2, 1, 3, 6,生成一棵A VL树,画出构造过程。
17.给定关键字序列4, 5, 7, 2, 1, 3, 6,分别生成二叉搜索树和A VL树,并用二叉搜索树和A VL树两种方法查找,给出查找6的查找次数及查找成功的平均查找长度。
18.给定关键词输入序列{CAP, AQU, PIS, ARI, TAU, GEM, CAN, LIB, VIR, LEO, SCO},假定关键词比较按英文字典序,试画出从一棵空树开始,依上述顺序(从左到右)输入关键词,用A VL树的插入算法生成一棵A VL树的过程,并说明生成过程中采用了何种转动方式进行平衡调整,标出树中各结点的平衡因子。
参考答案一、1-5. BCABC6-10. ABCCC二、1-5. √√√√×6-10. ××××√11-13. √√×三、1.中序2.二叉搜索树3.小于,大于4.查找成功,左子树,右子树5.左子树,右子树6.O(n2)7.平衡因子8.7, 159.1四、1.2.3.ASL= (1+2*2+3*3+4*3)/9 = 26/9 = 2.894.前序:18 10 5 73 68 27 25 41 32 51 99后序:5 10 25 32 51 41 27 68 99 73 185.6.7.二叉搜索树如图所示,平均查找长度等于32/10。
8.平均查找长度=1+2×2+3×2+4×2=19/7。
9.二叉搜索树删除72后的二叉搜索树10.11.或12.(1)(2)(1+2*2+3*2+4*1)/6 = 2.513.14.(1)构造的二叉搜索树为:(4)删除结点66后(2) 对于一个二叉搜索树,想得到一个从大到小的序列只要先读右子树再读根结点,最后读左子树的遍历这颗二叉树就可以了。
如果是要从小到大的序列,则只需中序遍历这颗二叉树即可。
(3)该二叉树的平均查找长度为:ASL=(1*1+2*2+3*4+4*3)/10=2.915.16.略17.18.19.20.二叉搜索树A VL树从二叉搜索树查找6需4次,平均查找长度ASL=(1+2+2+3+3+3+4)/7=18/7≈2.57。
从平衡二叉树查找6需2次,平均查找长度ASL=(1+2+2+3+3+3+3)=17/7≈2.43。
21.。