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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构期末练习题Word文件下载.docx

1、C 解决问题的计算方法 D 数据处理 15. 算法分析的目的是( C )。A找出数据结构的合理性 B研究算法中输入和输出的关系 C分析算法的效率以求改进 D分析算法的易读性和文档性16. 若某线性表中最常用的操作是取第i 个元素和找第i个元素的前趋,则采用( A )存储方法最节省时间。A 顺序表 B 单链表 C 双链表 D 单循环链表 17. 在一个单链表中,已知q所指结点是p所指结点的直接前驱,若在q和p之间插入s所指结点,则执行( B )操作。A s-next=p-next; p-next=s; B q- s-next=p;C p-next=s- D p-next=q;(1)s-(2)p-

2、(3)s=p-分别代表什么含义?1) 把p的下一个节点接到s的下一个节点上2) 把s接到p的下一个节点上3) 把p的一下个节点赋值给s18. 若一个栈的输入序列是1,2,3,n,输出序列的第一个元素是n,则第i个输出元素是( D )。A 不确定 B n-i C n-i-1 D n-i+1 19. 设有两个串p和q,求q在p中首次出现的位置的运算称作( B )。A 连接 B 模式匹配 C 求子串 D 求串长 20. 将数组称为随机存取结构是因为( B )。A 数组元素是随机的 B 对数组任一元素的存取时间是相等的 C 随时可以对数组进行访问 D 数组的存储结构是不定的 21. 一个高度为h的满二

3、叉树共有n个结点,其中有m个叶子结点,则有( D )成立。A n=h+m B h+m=2n C m=h-1 D n=2m-1 22. 队列的操作原则是( B )。A 先进后出 B先进先出 C 只能进行插入 D 只能进行删除23. 散列技术中的冲突指的是( D )。A 两个元素具有相同的序号 B 两个元素的键值不同,而其他属性相同 C 数据元素过多 D 不同键值的元素对应于相同的存储地址 24. 在栈中,栈顶指针top指示 ( B )。A栈底元素的位置 B栈顶元素的位置 C栈中任何元素的位置 D以上均不对25. 将数组称为随机存取结构是因为( B )。A 数组元素是随机的 B 对数组任一元素的存

4、取时间是相等的 C 随时可以对数组进行访问 D 数组的存储结构是不定的26. 下面( C )不是算法所必须具备的特性。 A 有穷性 B 确切性 C 高效性 D 可行性27. 在一棵树中,( B )没有后继结点。A 根结点 B 叶子结点 C 分支结点 D 所有结点 28. 若链表中最常用的操作是在最后一个结点之后插入一个结点和删除第一个结点,则采用( D )存储方法最节省时间。 A 单链表 B 带头指针的单循环链表 C 双链表 D 带尾指针的单循环链表 29. 设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5、e6依次通过栈S, 一个元素出栈后即进入队列Q,若6个元素出队的顺序是e

5、2、e4、e3、e6、e5、e1,则栈S的容量至少应该是( C )。 A 6 B 4 C 3 D 2 30. 二维数组A的每个元素是由6个字符组成的串,行下标的范围从08,列下标的范围是从09, A的第8列和第5行共占( C )个字节。 A 114 B 54 C 108 D 540 31. 在一棵树中,每个结点最多有 ( B ) 个前驱结点。A0 B1 C2 D任意多个32. 一个队列的入队顺序是1,2,3,4,则队列的输出顺序是( B )。A 4321 B 1234 C 1432 D 3241 33. 下面的说法中,不正确的是( C )。A 数组是一种线性结构 B 数组是一种定长的线性结构

6、C 除了插入与删除操作外,数组的基本操作还有存取、修改、检索和排序等 D 数组的基本操作有存取、修改、检索和排序等,没有插入与删除操作 34. 队列的操作原则是( B )。A 先进后出 B 先进先出 C 只能进行插入 D 只能进行删除35. 如果结点A有3个兄弟,B是A的双亲,则结点B的度是( D )。A 1 B 2 C 3 D 4 36. 静态查找与动态查找的根本区别在于( B )。A 它们的逻辑结构不一样 B 施加在其上的操作不同 C 所包含的数据元素的类型不一样 D 存储实现不一样 37. 在一个具有n个单元的顺序栈中,假定以地址低端(即下标为0的单元)作为栈底,以top作为栈顶指针,当

7、出栈时,top的变化为( B )。 A 不变 B top=top-1 C top=0 D top=top+1 38. 算法是指( C )A计算方法 B排序方法 C解决问题的有限运算步骤 D查找方法39. 算法能正确地实现预定功能的特性称为 ( A ) 。A 正确性 B 易读性 C 健壮 D 高效率40. 线性表的顺序存储结构是一种( A )的存储结构。A 随机存取 B 顺序存取 C 索引存取 D 散列存取 41. 假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产; 子女可以继承父亲或母亲的遗产;子女间不能相互继承。 则表示该遗产继承关系的最合适的数据结构应该是( B )。A 树 B 图 C

8、线性表 D 集合 42. 数组通常具有两种基本运算,即( B )A创建和删除 B读取和修改C插入和删除 D排序和查找43. 线性表采用链接存储时,其地址( D )。A 必须是连续的 B 部分地址必须是连续的 C 一定是不连续的 D 连续与否均可以 44. 下面( C )不属于特殊矩阵。 A 对角矩阵 B 三角矩阵 C 稀疏矩阵 E 对称矩阵 45. 线性表的第一个元素叫做( A )。A表头元素 B表尾元素 C前驱元素 D后继元素46. 线性表的最后一个元素叫做( B )。47. 设二叉树有n个结点,则其深度为( C )。 A n-1 B n C log2n向下取整+1 D 不能确定 当深度(高

9、度)为h时,结点数n满足:,可知,所以其深度h为向下取整+148. G是一个非连通无向图,共有28条边,则该图至少有( D )个顶点。 A 6 B 7 C 8 D 9 取出一个点作为一个无向图,其余点作为另一个无向图,则其点连线最多,使用的点最少,共需9个点49. 在以下哪种情况下,不能执行出栈操作?( B )A栈满 B栈空 C任何情况均可 D任何情况均不可50. 下列数据结构中,( D )不是线性结构。A栈 B队列 C数组 D树51. 栈又称为( B )表。A 先进先出 B 后进先出 D 不进不出 D 以上均不对52. 在以下哪种情况下,不能执行入栈操作?( A )53. 下面( C )不属

10、于特殊矩阵。A 对角矩阵 B三角矩阵 C 稀疏矩阵 D 对称矩阵54. 一个队列的入队顺序是1,2,3,4,则队列的输出顺序是( B )。 A4321 B 1234 C1432 D3241 55. 在一棵树中,每个结点最多有( B )个前驱结点。A 0 B 1 C 2 D 任意多个56. 非空树有( B )个根结点。A 0 B1 C2 D 任意多个57. 串是一种特殊的线性表,其特殊性体现在 ( B )A可以顺序存储 B数据元素是一个字符 C可以链接存储 D数据元素可以是多个字符58. 在以下哪种情况下,不能执行出栈操作?59. 数组中的数据元素的类型( A )。A必须相同 B不必相同 C一定

11、不能相同 D以上都不对60. 下列数据结构中,( D )不都是线性结构。A栈和队列 B队列和数组 C数组和串 D树和队列61. 关于空串与空格串,下面说法正确的是( C )。A空串与空格串是相同的 B空串与空格串长度是相同的 C空格串中存放的都是空格 D空串中存放的都是NULL62. 递归可采用下面哪种结构实现( B )/栈实现了递归A队列 B栈 C树 D图63. 栈操作的原则是( B )A先进先出 B后进先出 C只能进行插入 D只能进行删除64. 在关键字序列(4, 12, 23, 55, 56,67,88)中,使用折半查找法查找56,需要比较多少次( C )A. 1 B.2 C.3 D.4

12、65. 如果一个函数在其函数体中调用自己本身,则该函数叫做 ( B )。A重载函数 B递归函数 C普通函数 D成员函数66. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址 ( D )A必须是连续的 B部分地址必须是连续的C一定是不连续的 D连续或不连续都可以67. 设计一个判别表达式中左右括号是否配对的算法,采用( B )数据结构最佳。A 顺序表 B 栈 C 队列 D 链表 68. 下面的说法中,不正确的是( D )。A 对称矩阵只须存放包括主对角线元素在内的下(或上)三角的元素即可。B 对角矩阵只须存放非零元素即可。C 稀疏矩阵中值为零的元素较多,因此可以采用三元组表方法存储。D

13、 稀疏矩阵中大量值为零的元素分布有规律,因此可以采用三元组表方法存储。69. 按( B )遍历二叉排序树得到的序列是一个有序序列。A 前序 B 中序 C 后序 D 层次 二应用题1. 计算下列式子的时间复杂度。(1) 2n3+100log2n+12 (2) 5+n2+n! (3) 10+20n+2n 2. 有三个元素按a、b、c的次序依次进栈,且每个元素只允许进一次栈,列出所有可能的出栈序列。abc,acb,bca,bac,cba3. 栈S=(a,b,c),在栈中插入1个元素d,再从栈中删除一个元素,请写出S的变化过程。S=(a,b,c,d)- S=(a,b,c)4. 队列Q=(a,b,c),

14、在队列中插入1个元素d,再从队列中删除一个元素,请写出Q的变化过程。Q=(a,b,c,d)- Q=(b,c,d)5. 假设下图是一棵二叉树,请根据下图回答下列问题1 哪个是根结点? A2 哪些是叶子结点? DEG3 哪个是结点C的双亲?4 哪些是结点C的孩子? EF5 C的兄弟是哪个结点? B6 F的堂兄弟是哪个结点? D7 哪些结点是C的子孙结点? EFG8 树的深度是多少? 49 树的度是多少? 210 请写出该树的先根遍历序列、中根序列、后根序列、层次遍历序列。先序:ABDCEFG中序:BDAECGF后序:DBEGFCA层序:ABCDEFG6. 分别用prim算法和kruskal算法构造

15、下图的最小生成树。7. 若对序列(56,23,67,4,88,12,55)采用直接插入排序法和冒泡排序法进行排序,请写出每一趟的结果。直接插入排序法:(23,56)67,4,88,12,55(23,56,67)4,88,12,55(4,23,56,67)88,12,55(4,23,56,67,88)12,55(4,12,23,56,67,88)55(4,12,23,55,56,67,88)冒泡排序法:(23,56,4,67,12,55,88)(23,4,56,12,55,67,88)(4,23,12,55,56,67,88)8. 写出利用线性表求集合交集、并集和差集的算法(1) 求并集1 初始

16、化集合A、B、C A=new List() ; B=new List() ; C=new List() ;2 for(i=0;in;i+) A.insert(e); /输入集合A的数据元素 for(i=0;m;i+) B.insert(e); /输入集合B的数据元素3 for(i=0;A.size();i+) /逐个取出集合A中的数据元素,放入到集合C中 e=A.get(i); C.insert(e); 4 个取出集合B中的元素,判断该元素是否已存在集合C中4.1 该元素如果不在集合C中,则将其放入集合C中4.2 该元素如果已在集合C中,则重复第4步for(i=0;B.size();i+) e

17、=B.get(i); if(A.contains(e)=false) 5 出集合C中的所有数据元素 C.toString();(2) 求交集1、初始化集合A、B、C2、for(i=0;3、逐个取出集合B中的元素,判断该元素是否已存在集合C中 3.1 该元素如果在集合A中,则将其放入集合C中3.2 该元素如果不在集合A中,则重复第3步 if(A.contains(e)=true) 4、/输出集合C中的所有数据元素C.toString();(3) 求差集B=new List() ;i+) A.insert(e);B.insert(e);3、逐个取出集合A中的元素,判断该元素是否已存在集合B中 4.

18、1 该元素如果不在集合B中,则将其放入集合C中 4.2 该元素如果已在集合B中,则重复第4步e=A.get(i); if(B.contains(e)=false) 9. 写出对字符串中的字符ASCII值进行运算来进行加密和解密的算法。1.从键盘中输入并初始化字符串Scanner sc=new Scanner(System.in);StringBuffer s=new StringBuffer(sc.next();2. 定义一个变量char ch; 定义一个变量int i;3. 加密过程对字符串中每个字符的ASCII值+1 for(i=0;s.length(); ch=s.charAt(i);

19、ch=(char)(int)(ch)+1); s.setCharAt(i,ch); 4.输出加密之后的结果System.out.println(加密之后的字符串是:+s);5.解密过程对加密串中每个字符的ASCII值执行-1操作 ch=(char)(int)(ch)-1);6.输出加密之后的结果解密之后的字符串是:10. 写出利用栈,将非负的十进制整数M转化为基于N的N进制数的算法。1.定义变量int m,n,e,i; 定义栈SeqStack s=new SeqStackAn-1?max(A,n-1):An-1);3.结束算法求数组中的最小值int min(int A, int n) if(n=1) return A0;retu

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

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