ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:199.60KB ,
资源ID:5322387      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5322387.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《数据结构》复习题汇总.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《数据结构》复习题汇总.docx

1、数据结构复习题汇总老师:题型结构如下: 单项选择题,15小题,30分; 填空题,5小题,10分; 综合应用题,50分(树、图、查找) 算法设计与分析,2选1,10分(线性结构)试卷中一些算法只给英文名称;考查范围 (黑体字为建议的重点考查内容;红字为备注;蓝字为拟纳入的考研大纲内容)一、 绪论(一) 算法、数据结构基本概念(二) 算法分析中O(f(n)符号的含义(三) 时间复杂度简单分析表示二、线性表(一)线性表的定义和基本操作(二)线性表的实现1.顺序存储2.链式存储3.线性表的应用三、栈、队列 (一)栈和队列的基本概念(二)栈和队列的顺序存储结构(三)栈和队列的链式存储结构(四)栈和队列的

2、应用四、树与二叉树(一)树的概念(二)二叉树1.二叉树的定义及其主要特征2.二叉树的顺序存储结构和链式存储结构3.二叉树的遍历及应用(三)树、森林1. 森林与二叉树的转换2. 树的存储结构;3.树和森林的遍历4.线索二叉树的基本概念和构造(四)二叉树的应用1.哈夫曼(Huffman)树和哈夫曼编码2.二叉排序树五、图(一)图的基本概念(二)图的存储及基本操作1.邻接矩阵法2.邻接表法(三)图的遍历1.深度优先搜索2.广度优先搜索(四)图的基本应用1.最小(代价)生成树2.最短路径3.拓扑排序4.关键路径六、查找 (一)查找的基本概念(二)顺序查找法(三)折半查找法(四)二叉查找树及其基本操作(

3、只考察基本概念)(五) 平衡二叉树(只考察基本概念)(六)散列(Hash)表(七)查找算法的分析及应用七、排序(一)排序的基本概念(二)直接插入排序(三)气泡排序(bubble sort)(四)简单选择排序(五)希尔排序(shell sort)(六)快速排序(七)堆排序(八)二路归并排序(merge sort)(九)各种排序算法的比较(十)排序算法的应用选择题1、顺序队列的出队操作,正确修改队首指针的是( B ) (A)sq.front = (sq.front+1)%maxsize; (B)sq.front = sq.front+1; (C)sq.rear = (sq. rear +1)%ma

4、xsize; (D)sq.rear = sq. rear +1;2、非空的循环单链表head的尾结点(由指针p指)满足( C ) (A)p-next = NULL (B)p = NULL (C)p-next = head (D)p = head3、在单键表中,删除p所指结点的直接后继,其中指针修改为( A ) (A)p-next = p-next -next; (B)p = p-next; p-next = p-next-next; (C)p-next = p-next; (D)p = p-next -next;4、通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着( B ) (A)

5、数据元素具有同一特点 (B)不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型也要一致 (C)每个数据元素都一样 (D)数据元素所包含的数据项的个数要相等5、关于线性表,下列说法正确的是( D ) (A)每个元素都有一个直接前驱和直接后继 (B)线性表中至少要有一个元素 (C)表中诸元素的排列顺序必须是由小到大或由大到小的 (D)除第一元素和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继6、带头结点的单链表,其表头指针为head,则该单链表为空的判断条件是( B ) (A)head = NULL (B)head-next = NULL (C)head-next =

6、head (D)head != NULL7、含n个顶点的连通图中的任意一条简单路径,其长度不可能超过(C ) (A)1 (B)n/2 (C)n-1 (D)n8、设有一个顺序栈S,元素S1, S2, S3, S4, S5, S6依次进栈,如果6个元素出栈的顺序是S2, S3, S4, S6, S5, S1,则栈的容量至少应该是( B ) (A)2 (B)3 (C)5 (D)69、设深度为k的二叉树上只有度为0和度为2的结点,则这类二叉树上所含结点的总数最少为( C )个 (A)k+1 (B)2k (C)2k -1 (D)2k +110、从具有n个结点的单链表中查找指定结点时,若查找每个结点的概率

7、相等,在查找成功的情况下,平均需要比较( D )个结点。 (A)n (B)n/2 (C)(n-1)/2 (D)(n+1)/211、从对顺序表上的插入、删除算法的时间复杂度分析来说,通常以( B )为标准进行操作。 (A)条件判断 (B)结点移动 (C)算法表达式 (D)赋值语句12、深度为6的二叉树最多有( B )个结点 (A)64 (B)63 (C)32 (D)3113、在一个单链表中,已知q所指结点是p所指结点的直接前驱,若在p,q之间插入s结点,则执行( B )操作。 (A)s-next = p-next; p-next = s; (B)q-next = s; s-next = p; (

8、C)p-next = s-next; s-next = p; (D)p-next = s; s-next = q;14、在线性表的下列存储结构中,读取元素花费时间最少的是( D ) (A)单链表 (B)双链表 (C)循环链表 (D)顺序表15、以下关于哈夫曼树的说法,错误的是( D ) (A)一般在哈夫曼树中,权值越大的叶子结点离根结点越近 (B)哈夫曼 树中没有度数为1的分支结点 (C)若初始森林中共有n棵二叉树,最终求得的哈夫曼树共有2n-1个结点 (D)若初始森林中共有n棵二叉树,需要进行2n-1次合并后才能剩下一棵最终的哈夫曼树16.计算机算法指的是解决问题的有限运算序列,它必须具备输

9、入、输出和( B )等5个特性。A. 可执行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性D. 易读性、稳定性和安全性17.线性表采用链表存储地址时( D )。A. 必须是连续的。B. 部分地址必须是连续的。C. 一定是不连续的。 D. 连续不连续都可以。18.设循环队列中数组的下标范围是0n1,其头指针front指向队首元素,rear指向队尾元素,则队列的长度为(D)。Arearfront Brearfront1 C (rearfront1)(n1) D(rearfrontn1)n19线性表的链式存储结构与顺序(连续)存储结构相比优点是(C )A所有的操作/

10、运算 算法简单 B便于随机存取C 便于插入和删除 D便于查找20.一个栈的输入序列为A,B,C,D,E,则下列序列中不可能是栈的输出序列的是( B )。AB C D A E BE D A C B C B C A D E DA E D C B22、在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依相同次序从该缓冲区中取出数据打印。该缓冲区作为数据结构是一个( B)结构。A. 栈 B.队列 C.表(Table) D.线性表23、 下面四棵树中,数字表示相应叶子结点的权值,则( D )是哈夫曼树(Huffman Tree)。24、

11、栈和队列的共同点是( C )。A. 都是先进先出 B. 都是先进后出 C. 只允许在端点处插入和删除元素 D. 没有共同点25、串是一种特殊的线性表,其特殊性体现在( B )。A. 可以顺序存储 B. 数据元素是一个字符C. 可以链接存储 D. 数据元素可以是多个字符26 带头节点的单链表head为空的判定条件是(A).A. head-next=NULL B. head=NULLC. head-next=head D. head!=NULL27 对于一个具有n个顶点的无向图,若采用邻接矩阵表示,该矩阵的大小是(D)A. n B. (n-1)2C. n-1 D. n228 设有两个串p和q,求q

12、在p中首次出现的位置的运算称作( B )。A. 连接 B. 模式匹配C. 求子串 D. 求串长29 下列排序方法中,( C )不易于在单链表上实现。A直接插入排序 B冒泡排序 C 快速排序 D简单选择排序30下面关于图的存储的叙述中,哪一个是正确的。 (A)A用邻接矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关 B用邻接矩阵法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关C用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关D用邻接表法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关 31.排序方法中,从未排序序列中挑选元素,并将其依次与

13、已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为( C )A.快速排序 B. 起泡排序 C插入排序 D. 选择排序32.请指出在顺序表2、5、7、10、14、15、18、23、35、41、52中,用二分法查找关键码12需做多少次关键码比较。 (D)A.2 B.3 C. 5 D. 433.给定下列有向图和初始结点V1,按深度优先遍历的结点序列为(B)A、V1,V3,V4,V5,V2 B、V1,V2,V4,V5,V3C、V1,V2,V5,V3,V4D、V1,V2,V3,V4,V534 顺序查找法适合于存储结构为( B )的线性表。A散列存储 B 顺序存储或链接存

14、储 C 压缩存储 D 索引存储35 对线性表进行二分存储时,要求线性表必须( C )。A 以顺序方式存储 B以链接方式存储 C 以顺序方式存储,且节点按关键字有序排序D 以链接方式存储,且节点按关键字有序排序二填空题1. 若一个算法的基本语句的执行次数为(n3+n2log2n+14n)/n2,则该算法的时间复杂度为_ O(n)_。2. 6.设栈S和队列Q的初始状态为空,元素a、b、c、d、e、f将依次入栈S,一个元素出栈后即进入队列Q。若这6个元素出队列的顺序是b、d、c、f、e、a,则栈S的容量至少应该是3,上述过程才不会出错。3. 设有一空队列Q,经Q.EnQueue(1),Q.DeQue

15、ue (),Q.EnQueue(2),Q.EnQueue(3),Q.EnQueue(4),Q.DeQueue ();Q.EnQueue(5)一系列操作后。队列中从队首到队尾的元素依次是_ _3 4 54. 空字符串与空格串的区别在于 空格串是一个字符串,由若干空格组成;空字符串中没有字符 。5. 7已知某二叉树的后序遍历序列是BDECA, 中序遍历序列是BADCE,那么它的前序遍历序列是 ABCDE 。6. 写出右图所示二叉树按后序遍历的结果 17,23,45,65,78,09,31,53,87 。7. 写出右图所示二叉树度为1的内部结点的值 09 。8. 二叉树的第k层的结点数最多为_2k-

16、1_。9. 已知完全二叉树的第4层(根结点为第1层)总共只有2个结点,则其叶子结点数是 5 。10. 某表达式二叉树按先序遍历的结果为+a*+bcd,令a=6,b=3,c=4,d=2,则该表达式的值等于 20 。11. 弗洛伊德(Floyd)算法用于求_每一对顶点之间_的最短路径问题。12. 构造最小生成树的经典算法中,_克鲁斯卡尔(Kruskal)算法_更适用于求稀疏网的最小生成树。13. 假定一个数列25,43,62,31,48,56,采用的散列函数为H(k)=k mod 7, 则元素48的同义词是_62_。五应用题1 已知关键字序列为36, 31, 20, 32, 66, 48,依次将各

17、元素插入到一棵初始为空的二叉排序树,画出对应的二叉排序树。2 已知二叉树如左下图,试写出后序遍历结果。3. 现有森林如右上图,请画出对应的二叉树。4.已知一颗二叉树遍历的先序序列为ABDFIGCEHJ,中序序列为BIFDGAEJHC,请画出这颗二叉树。答案:5.已知一颗二叉树如下图所示,将此二叉树转换为森林。答案:6.图G各顶点的连接关系及相应权值如下图所示。(1)画出图的邻接表存储图示(2)从顶点1开始对图进行广度优先遍历,写出遍历结果;(3)使用Kruskal算法求该图的最小生成树,给出的形成过程。(11分)7.设Hash函数为H(K)=K mod 7,哈希表的地址空间为0,6,开始时哈希

18、表为空,用平方探测法解决冲突,请画出依次插入键值9,14,10,56,30后的哈希表。8. 在双循环链表中,写出在指针P所指结点之前插入指针S所指结点的执行语句序列;结点定义如下:struct Node char data; Node *next;Node *back; ;9. 设右图为某树的二叉树表示,请画出该树。10. 简要说明快速排序的排序思想, 并给出算法时间复杂度。根据所给序列(49,38,65,97,76,13,27,50),设选第一个元素为支点/参考值(pivot),写出快速排序的第一趟排序的结果。解答:先选一个轴值(即比较的基准),通过一趟排序将待排序记录分割成独立的两部分,前

19、一部分记录的关键码均小于或等于轴值,后一部分记录的关键码均大于或等于轴值,然后分别对这两部分重复上述方法,直到整个序列有序。11. 运用堆排序(Heapsort)方法,设初始序列为(46,88,45,39,70,58,101,10,66,34),若按教材上的算法建初始堆,画出初始堆的树状图。12. 设Hash函数为H(K)=K mod 7,哈希表的地址空间为0,6,开始时哈希表为空,用线性探测法解决冲突,请画出依次插入键值23,14,9,6,30,12,18后的哈希表。13.图G各顶点的连接关系及相应权值如右图所示。(1)画出该图的邻接距阵;(2)并从顶点0开始对图进行广度优先遍历,写出遍历结

20、果;(3)使用Prim算法求该图的最小生成树,画出其生成过程。14. 如图所示为一有向图,试求:在邻接矩阵和(逆)邻接表存储结构下利用深度和广度优先算法遍历序列。15. 求出如图所示的AOE网中所有关键路径,请写出事件的最早发生时间和最晚发生时间、活动的最早开始时间和最晚开始时间,以及求得的关键路径(10分)。答案:事件V0V1V2V3V4V5V6V7最早发生时间034158211925最晚发生时间035158231925活动a0a1a2a3a4a5a6a7a8a9a10a11最早开始时间00334815158211519最晚开始时间018358171511231519差值0150102032

21、00是否关键活动是是是是是是关键路径有两条:和16. 已知一组关键字为25,18,46,2,53,39,32,4,74,67,60,11,按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成之后的二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。答案:由已知关键字组进行构造时,是从空二叉排序树开始依次选取关键字通过查找和插入而生成出二叉排序树。二叉排序树的生成过程如下图:关键字25查找成功时比较1次,关键字18,46查找成功时各比较2次,关键字4,39,53查找成功时各比较3次,关键字11,32,74查找成功时各比较4次,关键字11,67查找成功时各比较5次,关键字60查找成

22、功时比较6次,则:ASL=(1*1+2*2+3*3+3*4+2*5+1*6)/12=42/12=3.517. 简要说明快速排序的排序思想. 根据所给序列(49,38,65,97,76,13,27,50),设选第一个元素为支点/参考值(pivot),写出快速排序的第一趟排序的结果。Solution:18. 图G各顶点的连接关系及相应权值如右图所示。(1)画出该图的邻接距阵;(2)并从顶点0开始对图进行广度深度优先遍历,写出遍历结果;(3)使用Prim, Kruskal算法求该图的最小生成树,画出其生成过程。Prim算法求该图的最小生成树19. 在什么样的情况下,等长编码是最优的前缀码?在每个字符

23、的使用概率相同的情况下,也即在哈夫曼树中每片叶子的权重相等的时候,等长编码是最优的前缀码。19.设右图为某树的二叉树表示,请画出该树。(或者树到二叉树的题)解20.假设用于通信的电文由字符集A, B, C, D, R中的字母构成,这5个字母在电文中出现的频率依次为40, 20, 10, 10, 20 。请画出对应的 编码哈夫曼树(Huffman);求出每个字符的哈夫曼编码。四. 算法设计与分析:1.请设计求n的阶乘的递归算法与非递归算法,其中非递归算法请用栈或队列实现;参考答案:long Factorial1 ( long n ) if ( n = 0 ) return 1;else retu

24、rn n * Factorial1 (n-1);long Factorial2 (long n)SeqStacksqs;long fac=1;if (n0)for(int i=n; i0; i-) sqs.push(i);while(sqs.Empty()=0) fac=fac*sqs.pop();return fac;2.已知二叉树用二叉链表存储,试编写一函数实现计算该树的高度。请定义必要的数据结构。template struct BiNode DataType data; BiNode *lchild, *rchild; int Depth(BiNode *root) if (root =

25、 NULL) return 0; else hl= Depth(root-lchild); hr= Depth(root -rchild); return max(hl, hr)+1;11. 现有一棵二叉查找(排序)树(Binary Search Tree)BST,以二叉链表形式存储,进行中序遍历可得到从小到大排列的有序序列。1)请编写一函数,对该二叉查找树进行变换,使得对新的二叉树进行中序遍历可得到从大到小排列的有序序列。templatevoid Exchange(BiNode*root)if(root!=NULL)Exchange(root-lchild);Exchange(root-rchild);root-lchild root-rchild;2)请用中文文字直接描述在新的二叉树上找最大元素的方法。有关的数据结构已描述如下:struct Binary_node / 二叉树结点 int data;Binary_node *left;Binary_node *right;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1