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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构复习题.docx

1、数据结构复习题2017 2018学年度第2学期数据结构 复习提纲 一、单项选择题题号12345678910答案CADCABABCD题号11121314151617181920答案AADAADCBAB1在数据结构中,从逻辑上可以把数据结构分为_两类。A动态结构和静态结构 B紧凑结构和非紧凑结构C线性结构和非线性结构 D内部结构和外部结构2链表不具有的特点是_。A可随机访问任一元素 B插入、删除不需要移动的元素C不必事先估计存储空间 D所需空间与线性表长度成正比3若线性表最常用的运算是存取第i个元素及其前驱元素,则采用_存储方式节省时间。A单链表 B双链表 C循环单链表 D顺序表4算法分析的目的是

2、_。A找出数据结构的合理性 B研究算法中的输入和输出关系C分析算法的效率以求改进 D分析算法的易读性和文档性5若一个栈用数组data1.n存储,初始栈顶指针top为0,则以下元素x进栈的操作正确的是_。Atop+; datatop=x; Bdatatop=x; top+;Ctop-; datatop=x; Ddatatop=x; top-;6表达式a*(b+c)-d的后缀表达式是_。Aabcd*+- Babc+*d- Cabc*+d- D-+*abcd7递归函数f(1)=1,f(n)=f(n-1)+n(n1)的递归出口是_。Af(1)=1 Bf(1)=0 Cf(0)=0 Df(n)=n8将递归

3、算法转换成对应的非递归算法时,通常需要使用_保存中间结果。A队列 B栈 C链表 D树9对稀疏矩阵采用压缩存储,其缺点之一是_。A无法判断矩阵有多少行、多少列B无法根据行、列号查找某个矩阵元素C无法根据行、列号直接计算矩阵元素的存储地址D使矩阵元素之间的逻辑关系更加复杂10一个n阶上三角矩阵a按行优先顺序压缩存放在一维数组b中,则b中的元素个数是_。An Bn2 Cn(n+1)/2 Dn(n+1)/2+111度为4,高度为h的树_。A至少有h+3个结点 B最多有4h-1个结点C最多有4h个结点 D至少有h+4个结点12用双亲存储结构表示树,其优点之一是比较方便_。A找指定结点的双亲结点 B找指定

4、结点的孩子结点C找指定结点的兄弟结点 D判断某结点是不是叶子结点13设有13个值,用它们组成一棵哈夫曼树,则该哈夫曼树共有_个结点。A13 B12 C26 D2514无向图的邻接矩阵是一个_。A对称矩阵 B零矩阵 C上三角矩阵 D对角矩阵15在图的广度优先遍历算法中用到一个队列,每个顶点最多进队_次。A1 B2 C3 D不确定16在用Prim和Kruskal算法构造最小生成树时,前者更适合于_。A有向图 B无向图 C稀疏图 D稠密图17有一个有序表R1.13=1, 3, 9, 12, 32, 41, 45, 62, 75, 77, 82, 95, 100,当用二分查找法查找值为82的节点时,经

5、过_次比较后查找成功。A1 B2 C4 D818在采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块,则每块分为_个结点最佳。A9 B25 C6 D62519若R中有10000个元素,如果仅要求求出其中最大的10个元素,则采用_方法最节省时间。A堆排序 B希尔排序 C快速排序 D基数排序20有一组序列(48, 36, 68, 99, 75, 24, 28, 52)进行快速排序,要求结果从小到大排序,则进行一次划分之后的结果为_。A24 28 36 48 52 68 75 99 B28 36 24 48 75 99 68 52C36 68 99

6、 48 75 24 28 52 D28 36 24 48 99 75 68 52二、填空题题号答案题号答案题号答案1问题规模2O(n)3假溢出42855462h-17关键活动8无环图9RL10基数排序1在分析算法的时间复杂度时,通常认为算法的执行时间是_的函数。2求一个双链表长度的算法的时间复杂度为_。3在实现顺序队的时候,通常将数组看成是一个首尾相连的环,这样做的目的是为了避免产生_现象。4有如下递归过程:void reverse( int m ) printf(%d, n%10); if( n/10!=0 ) reverse(n/10);调用语句reverse(582)的结果是_。5广义表

7、(a, b,( ), c), d), e, (f), g)的深度是_。6在高度为h(h0)的二叉树中最多有_个结点。7AOE网中从源点到汇点长度最长的路径称为关键路径,该路径上的活动称为_。8可以进行拓扑排序的有向图一定是_。9输入序列为(20, 35, 30,),构造一棵平衡二叉树,其中的第一次调整为_型调整。10在排序过程中,任何情况下都不比较关键字大小的排序方法是_。三、判断题题号12345678910答案FTFFFTFTFF1如果数据元素值发生改变,则数据的逻辑结构也随之改变。 ( )2在循环单链表中没有为空的指针域。 ( )3顺序栈中元素值的大小是有序的。 ( )4任何递归算法都是尾

8、递归。 ( )5稀疏矩阵的特点是矩阵中元素较少。 ( )6哈夫曼树中不存在度为1的结点。 ( )7完全二叉树中的每个结点或者没有孩子或者有两个孩子。 ( )8强连通分量是有向图中的极大强连通子图。 ( )9哈希冲突是指同一个关键字的记录对应多个不同的哈希地址。 ( )10任何情况下折半插入排序都优于直接插入排序。 ( )四、问答题 1设计一个算法,删除一个单链表L中元素值最大的结点(假设这样的结点唯一)。void delmaxnode(LinkList *&L) LinkList *p,*pre, *maxp, *maxpre; p=L-next; pre=L; maxp=p; maxpre=

9、pre; while (p!=NULL) if (maxp-datadata) maxp=p; maxpre=pre; pre=p; p=p-next; maxpre-next=maxp-next; free(maxp);2已知一棵完全二叉树的第6层(设根为第1层)有8个叶子结点,则该完全二叉树的结点个数最多是多少。完全二叉树的叶子结点只能在最下两层,对于本题,结点最多的情况是第6层为倒数第二层,即16层构成一个满二叉树,其结点总数为26-1=63。第6层有25=32个结点,其中含8个叶子结点,另外有32-8=24个非叶子结点,它们中的每个结点都有两个孩子结点(均为第7层的叶子结点),计48个

10、叶子结点,这样最多的结点个数=63+48=111。3一个有向图G的邻接表存储如下图所示,要求:(1)给出该图的邻接矩阵存储结构;(2)给出该图的所有强连通分量。4什么是平衡二叉树?输入关键字序列(16,3,7,11),给出构造一棵平衡二叉树的过程。若一棵二叉排序树中每个结点的左右子树的高度最多相差1,则称此二叉树为平衡二叉树。5线性表有顺序表和链表两种存储方式,不同的排序方法适合不同的存储结构。对于常见的内部排序方法,说明哪些更适合于顺序表,哪些更适合于链表?哪些两者都适合? 更适合于顺序表的排序方法有希尔排序、折半插入排序、快速排序、堆排序和归并排序。更适合于链表的排序方法是基数排序两者都适

11、合的排序方法有直接插入排序、冒泡排序和简单排序。五、算法设计题用Floyd算法计算图中任意两个顶点之间的最短路径。void Floyd(MGraph g) int AMAXVMAXV,pathMAXVMAXV; int i,j,k; for (i=0; ig.n; i+) for (j=0; jg.n; j+) Aij=g.edgesij; pathij=-1; for (k=0; kg.n; k+) for (i=0; ig.n; i+) for (j=0; jAik+Akj) Aij=Aik+Akj; pathij=k; /修改最短路径 Dispath(A,path,g.n); /输出最短

12、路径一、选择题1研究数据结构就是研究( )。A 数据的逻辑结构B 数据的存储结构C 数据的逻辑和存储结构D 数据逻辑结构、存储结构及其数据在运算上的实现2链表不具有的特点是( )。A 可随机访问任一元素B 插入删除不需要移动元素C 不必事先估计存储空间D 所需空间与线性表长度成正比3设一个栈的输入序列为1,2,3,4,则借助一个栈所得到的输出序列不可能是( )。A 1,2,3,4B 2,4,3,1C 3,1,4,2D 3,2,4,14设计一个判别表达式中左、右括号是否配对出现的算法,采用( )数据结构最佳。A 线性表的顺序存储结构B 栈C 线性表的链式存储结构D 队列5表达式a*(b+c)-d

13、的后缀表达式是( )。A abcd*+-B abc+*d-C abc*+d-D -+*abcd6队列的操作原则是( )。A 先进先出B 只能进行插入C 后进先出 D 只能进行删除7判断带头结点的单链表llist为空的条件是( )。A llist-link=llistB llist=NULLC llist-link=NULLD llist!=NULL8一个具有20个结点的完全二叉树,其叶结点个数为( )。A 9B 10C 11D 129下列不属于内部排序的算法是( )。A 归并排序B 拓扑排序C 选择排序D 插入排序10在一棵度为3的树中,度为3的结点数为2,度为2的结点数为1,则叶结点数为(

14、)。A 4B 5C 6D 712345678910DACBBACBBC二、填空题1已知二叉树有50个叶子结点,则该二叉树的总结点数至少是 99 。2在一个长度为n的线性表的第i个元素(1in)之前插入一个元素时,插入函数需向后移动 n-i+1 个元素。3若频繁地对线性表进行插入与删除操作,该线性表应采用 链式 存储结构。4若某线性表采用顺序存储结构,每个元素占2个存储单元,首地址为是100,则第5个元素的地址是 108 。5若结点y是结点x的一棵子树的根,则x称作y的 父结点 。6一个串中包括的字符个数称作这个串的 长度 。7一棵树高为h的完全二叉树至少有2h-1个结点,至多有 2h-1 个结

15、点。8算法的复杂性分析主要从算法的时间复杂性和 空间 复杂性进行考虑。9数据结构主要根据 逻辑 结构和存储结构进行分类。10图的遍历分为两种类型:深度优先遍历和 广度 优先遍历。三、算法分析与设计题1在链表中,若已知指针p,要在指针p所指的结点之后插入数据域值相继为a和b的两个结点,已知指针s指向结点a。写出实现上述插入操作的关键语句。s-next-next=p-next; p-next=s; 2如图所示的一棵二叉树,写出对此树的先根序列、中根序列和后根序列。先根序列:ABDEFC 中根序列:DEFBAC 后根序列:FEDBCA 3以5,6,7,8,9,10,15,18,22作为叶结点的权值来

16、构造一棵Huffman树。4请设计一个算法,求出循环表中结点的个数。int Countnode(ClinkList clist) int n; PNode p; p=clist-link; n=0; while(p!=clist) n+; p=p-link; return(+n);一、填空题1设有一个8阶的对称矩阵A, 采用压缩存储方式, 按行优先顺序存储方式。设a11为第一个元素,其存储地址为1,假设每个元素占用1个存储单元,则a64的存储地址为 19 。2若频繁地对线性表进行插入与删除操作,该线性表应采用 链式 存储结构。3算法的5个重要特征是 有穷性 、确定性、可行性、输入和输出。4.

17、每次从无序子表中取出一个元素,然后把它插入到有序子表的适当位置,则此种排序方法叫做 直接插入 排序。5设二维数组A1.M,1.N(即M行N列)按行优先顺序存储在一维数组B1.M*N中,则二维数组元素Ai,j在一维数组B中的下标为 (i-1)*N+j 。6在序列(2,5,8,11,15,16,22,24,27,35,50)中采用折半查找(二分查找)方法查找元素24,需要进行 4 次元素之间的比较。7一棵树高为h的完全二叉树至少有 2h-1 个结点,至多有 2h-1 个结点。8由权值分别为11,8,6,2,5的叶结点生成一棵Huffman树,它的带权路径长度为 71 。9对关键字序列(52,80,

18、63,44,48,91)一趟快速排序后的结果 (48,44,52,63,80,91) 。二、单项选择题题号12345678910答案DAAACBDBAC题号11121314151617181920答案CAADDCDAAC1. 数据结构是指 。A. 一种数据类型B. 数据的存储结构C. 一组性质相同的数据元素的集合D. 相互之间存在一种或多种特定关系的数据元素的集合2. 以下算法的时间复杂度为 。void fun(int n) int i=1; while (i=n) i+;A. O(n) B. O()C. O(nlog2n) D. O(log2n)3. 在一个长度为n的有序顺序表中删除元素值为

19、x的元素时,在查找元素x时采用二分查找,此时的时间复杂度为 。A. O(n) B. O(nlog2n)C. O(n2) D. O()4. 在一个带头结点的循环单链表L中,删除元素值为x的结点,算法的时间复杂度为 。A. O(n) B. O()C. O(nlog2n) D. O(n2)5. 若一个栈采用数组s0.n-1存放其元素,初始时栈顶指针为n,则以下元素x进栈的正确操作是 。A.top+;stop=x; B.stop=x;top+;C.top-;stop=x; B.stop=x;top-;6. 中缀表达式“2*(3+4)-1”的后缀表达式是 ,其中#表示一个数值的结束。A. 2#3#4#1

20、#*+- B. 2#3#4#+*1#-C. 2#3#4#*+1#- D. -+*2#3#4#1#7. 设环形队列中数组的下标为0N-1,其队头、队尾指针分别为front和rear(front指向队列中队头元素的前一个位置,rear指向队尾元素的位置),则其元素个数为 。A. rear-front B. rear-front-1C. (rear-front)N+1 D. (rear-front+N)N8. 若用一个大小为6的数组来实现环形队列,队头指针front指向队列中队头元素的前一个位置,队尾指针rear指向队尾元素的位置。若当前rear和front的值分别为0和3,当从队列中删除一个元素,

21、再加入两个元素后,rear和front的值分别为 。A. 1和5 B. 2和4C. 4和2 D. 5和19. 一棵深度为h(h1)的完全二叉树至少有 个结点。A. 2h-1 B. 2hC. 2h+1 D. 2h-1+110. 一棵含有n个结点的线索二叉树中,其线索个数为 。A. 2n B. n-1C. n+1 D. n11. 设一棵哈夫曼树中有1999个结点,该哈夫曼树用于对 个字符进行编码。A. 999 B. 998C. 1000 D. 100112. 一个含有n个顶点的无向连通图采用邻接矩阵存储,则该矩阵一定是 。A. 对称矩阵 B. 非对称矩阵C. 稀疏矩阵 D. 稠密矩阵13. 设无向连通图有n个顶点e条边,若满足 ,则图中一定有回路。A. en B. e1)个元素的线性表的运算只有4种:删

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

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