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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构期末练习题.docx

1、数据结构期末练习题1.数据的不可分割的基本单位是 ( )。A元素 B.结点.数据类型 D数据项2.计算机处理数据的最小单位是( )。A元素 B结点C.数据类型 D数据项3.算法是指 ( C )。 A.计算方法 B排序方法C解决问题的有限运算步骤 D查找方法4.顺序存储结构中数据元素之间的逻辑关系是由( C )表示的 A 线性结构 B 非线性结构 C 存储位置 指针 5.单循环链表的主要优点是( B )。 不再需要头指针了 B从表中任一结点出发都能扫描到整个链表;C 已知某个结点的位置后,能够容易找到它的直接前趋; D 在进行插入、删除操作时,能更好地保证链表不断开。 6.此题的解决步骤是如果出

2、现一个三元素顺序是a、b、c,且acb,则为不可能序列一个栈的入栈序列是1,2,3,4,5,则栈的不可能的输出序列是( C )。 54321 431 352 D 1345 7.常对数组进行的两种基本操作是( )A建立和删除. 索引和修改C.插入和修改 D插入和索引8.算法分析的两个主要方面是( A )。A空间性能和时间性能 正确性和简明性 C 可读性和文档性 数据复杂性和程序复杂性 9.在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印缓冲区, 该缓冲区应该是一个( )结构。 需满足先进先出原则 栈 队列 C 数组 D 线性表 10.二维数组A的每个元素是由6个字符组成的串,行下标的

3、范围从08,列下标的范围是从09,则存放A至少需要(D )个字节。 A 90 B180 C 4 D 54011.讨论树、森林和二叉树的关系,目的是为了( B )。 A 借助二叉树上的运算方法去实现对树的一些运算 将树、森林按二叉树的存储方式进行存储并利用二叉树的算法解决树的有关问题 将树、森林转换成二叉树 D体现一种技巧,没有什么实际意义 12.算法在发生非法操作时可以作出处理的特性称为(A)。 A 健壮性 B 确定性 C 可行性 D 正确性 13.二叉排序树中,最小值结点的( )。 A 左指针一定为空B 右指针一定为空 左、右指针均为空 左、右指针均不为空 14.算法指的是( A )。 对特

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

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

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

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

8、元素出队的顺序是e2、e4、e3、e6、5、e1,则栈S的容量至少应该是( C )。 4 C D 30.二维数组A的每个元素是由个字符组成的串,行下标的范围从0,列下标的范围是从09, 的第列和第5行共占( C )个字节。 A 114 B 54 C 108 40 31.在一棵树中,每个结点最多有 ( ) 个前驱结点。.0 B.1 C. D任意多个32.一个队列的入队顺序是,2,4,则队列的输出顺序是( B )。 4321 134 C 32 3241 33.下面的说法中,不正确的是( C )。 数组是一种线性结构 数组是一种定长的线性结构 C 除了插入与删除操作外,数组的基本操作还有存取、修改、

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

10、是指( C )A计算方法 B.排序方法 C.解决问题的有限运算步骤 D.查找方法39.算法能正确地实现预定功能的特性称为( ) 。A. 正确性 . 易读性 C. 健壮 D 高效率40.线性表的顺序存储结构是一种(A)的存储结构。 A随机存取 B 顺序存取 C 索引存取 D 散列存取 41.假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产; 子女可以继承父亲或母亲的遗产;子女间不能相互继承。则表示该遗产继承关系的最合适的数据结构应该是( B )。 A 树 B 图 C线性表 D集合 42.数组通常具有两种基本运算,即( B )A.创建和删除 B读取和修改C.插入和删除 D.排序和查找43.线性表

11、采用链接存储时,其地址( D)。 必须是连续的 B 部分地址必须是连续的 C 一定是不连续的 连续与否均可以 44.下面( C )不属于特殊矩阵。 对角矩阵 三角矩阵 C 稀疏矩阵 E 对称矩阵 45.线性表的第一个元素叫做( A )。A.表头元素 B表尾元素 C.前驱元素 D.后继元素46.线性表的最后一个元素叫做(B )。表头元素 .表尾元素前驱元素后继元素47.设二叉树有n个结点,则其深度为( C )。 A n1 Bn C og2向下取整1 D 不能确定 当深度(高度)为h时,结点数n满足:,可知,所以其深度h为向下取整+148.G是一个非连通无向图,共有28条边,则该图至少有(D )个

12、顶点。 A B C 8 9 取出一个点作为一个无向图,其余点作为另一个无向图,则其点连线最多,使用的点最少,共需9个点49.在以下哪种情况下,不能执行出栈操作?( B).栈满 B栈空C任何情况均可 D任何情况均不可50.下列数据结构中,( D )不是线性结构。栈 .队列 C.数组 D.树51.栈又称为()表。A 先进先出 B 后进先出 不进不出 D 以上均不对52.在以下哪种情况下,不能执行入栈操作?( A )A.栈满 B.栈空 C.任何情况均可.任何情况均不可53.下面( C )不属于特殊矩阵。 A对角矩阵 B.三角矩阵 C 稀疏矩阵 对称矩阵54.一个队列的入队顺序是1,2,3,4,则队列

13、的输出顺序是( B)。 .4321 B 13 C142 D.341 55.在一棵树中,每个结点最多有( B )个前驱结点。A B1 C. 2 D 任意多个56.非空树有( B)个根结点。A. 0 . C2 . 任意多个57.串是一种特殊的线性表,其特殊性体现在 (B )A.可以顺序存储 数据元素是一个字符可以链接存储 数据元素可以是多个字符58.在以下哪种情况下,不能执行出栈操作?( )栈满 B栈空 C.任何情况均可 D.任何情况均不可59.数组中的数据元素的类型( )。A.必须相同 B.不必相同C一定不能相同 D.以上都不对60.下列数据结构中,( D )不都是线性结构。A栈和队列 .队列和

14、数组 C数组和串 D.树和队列61.关于空串与空格串,下面说法正确的是( )。A.空串与空格串是相同的 B空串与空格串长度是相同的 空格串中存放的都是空格 D.空串中存放的都是NUL62.递归可采用下面哪种结构实现( B )/栈实现了递归A队列 B栈 C树D.图63.栈操作的原则是(B)A.先进先出B.后进先出 C只能进行插入 D只能进行删除64.在关键字序列(4,12,3,55, 56,7,88)中,使用折半查找法查找56,需要比较多少次(C )A.1 B.2 C.3 D.465.如果一个函数在其函数体中调用自己本身,则该函数叫做 ( )。.重载函数 递归函数 普通函数 D.成员函数66.线

15、性表若采用链式存储结构时,要求内存中可用存储单元的地址 ( D )必须是连续的 B.部分地址必须是连续的C一定是不连续的 D连续或不连续都可以67.设计一个判别表达式中左右括号是否配对的算法,采用( B )数据结构最佳。 A顺序表 栈 C 队列 D 链表68.下面的说法中,不正确的是(D )。 A 对称矩阵只须存放包括主对角线元素在内的下(或上)三角的元素即可。 B 对角矩阵只须存放非零元素即可。 C 稀疏矩阵中值为零的元素较多,因此可以采用三元组表方法存储。 稀疏矩阵中大量值为零的元素分布有规律,因此可以采用三元组表方法存储。 69.按(B )遍历二叉排序树得到的序列是一个有序序列。 前序

16、B 中序 C 后序 D层次 二应用题1.计算下列式子的时间复杂度。(1)2n+10g2n+12 (2)n! (3)0+ 2.有三个元素按a、c的次序依次进栈,且每个元素只允许进一次栈,列出所有可能的出栈序列。ab,c,b,bc,cb3.栈=(a,b,),在栈中插入1个元素d,再从栈中删除一个元素,请写出S的变化过程。S=(a,b,c,d)-=(,b,)4.队列=(,b,c),在队列中插入1个元素d,再从队列中删除一个元素,请写出Q的变化过程。Q=(a,b,c,d)- (b,d)5.假设下图是一棵二叉树,请根据下图回答下列问题1哪个是根结点?A2哪些是叶子结点? DEG3哪个是结点C的双亲? A

17、4哪些是结点的孩子? EF5C的兄弟是哪个结点?B6F的堂兄弟是哪个结点?7哪些结点是C的子孙结点?EF8树的深度是多少? 49树的度是多少? 210请写出该树的先根遍历序列、中根序列、后根序列、层次遍历序列。 先序:ABDEFG中序:BECGF后序:DBGFCA层序:ACDEFG6.分别用prim算法和skal算法构造下图的最小生成树。7.若对序列(56,2,67,4,88,12,5)采用直接插入排序法和冒泡排序法进行排序,请写出每一趟的结果。直接插入排序法:(,56)67,4,8,1,55(23,56,67)4,88,,55(4,23,56,67)8,55(4,23,56,,8)12,55

18、(,12,23,5,88)5(,1,3,56,7,8)冒泡排序法:(23,56,67,,5,88)(23,4,56,12,5,67,8)(,23,12,55,56,7,8)(,12,23,55,56,67,8)8.写出利用线性表求集合交集、并集和差集的算法(1)求并集 初始化集合A、B、 A=nw s() ;new is() ; Cnew List(); 2 o(i=;i;+) A.iset(); /输入集合的数据元素 or(=;im;+) B.er(); /输入集合B的数据元素3fr(i=0;Asi();i+) /逐个取出集合A中的数据元素,放入到集合C中 =.t(i); C.inert(e

19、); 4 个取出集合中的元素,判断该元素是否已存在集合C中4 该元素如果不在集合中,则将其放入集合C中4. 该元素如果已在集合C中,则重复第4步for(=0;iB.ize();+) e.et(); if(A.ontains()=false) .inset(e);出集合C中的所有数据元素 C.toSrin();(2)求交集1、初始化集合、B、nw List() ; B=new Lis() ; =ne List() ; 、(i=0;in;i+) A.inser(); /输入集合的数据元素fr(;i;+) B.nsrt(e); /输入集合的数据元素、逐个取出集合中的元素,判断该元素是否已存在集合C中

20、 3.1 该元素如果在集合A中,则将其放入集合C中3. 该元素如果不在集合A中,则重复第步for(0;iB.sze();+) e=B.gt(i); if(Acontains(e)=tre) C.inset(); 4、/输出集合C中的所有数据元素C.toString();(3)求差集1、初始化集合A、B、C =ne List() ;B=nw Ls(); C=ne List() ;、or(i0;n;i+) A.inser(e); 输入集合A的数据元素 fr(i=0;m;i+) B.insert(e); /输入集合B的数据元素3、逐个取出集合中的元素,判断该元素是否已存在集合B中 4.1该元素如果不

21、在集合中,则将其放入集合C中 .2 该元素如果已在集合B中,则重复第步for(i=0;iA.sie();+) e=A.get(); if(B.tains(e)=flse) C.nsert(e); 、/输出集合C中的所有数据元素C.toStrng();9.写出对字符串中的字符SCII值进行运算来进行加密和解密的算法。1从键盘中输入并初始化字符串Sanr scn Scnner(ste.in);StrgBufr s=ew StrinBuff(nex()); 定义一个变量char ch; 定义一个变量inti;. 加密过程对字符串中每个字符的ACII值+1 fr(i0;i.leng();i+) chs

22、.charAt(i); h=(char)(in)(ch)+1); s.sCrAt(,ch); .输出加密之后的结果Sstem.ut.pintln(加密之后的字符串是:+);.解密过程对加密串中每个字符的CII值执行-操作for(i;i.lengh();i+) chs.chart(i);ch=(cha)((int)(ch)1); s.etChart(i,ch); 6输出加密之后的结果Sytem.out.pintln(解密之后的字符串是:+s);10.写出利用栈,将非负的十进制整数M转化为基于N的N进制数的算法。1.定义变量intm,n,e,; 定义栈SeqStakItee s=neSeSknte

23、er();2.从键盘获取非负的十进制整数 Stemout.pil(请输入要转换的十进制正数 :); cannescnw Scanne(System.in); m=sc.nextInt();3.获取转化为基于N的进制数 Sytem.outpintln(请输入要转换的数制:); =sc.xInt();4用M除,得到商数和余数,将余数放入栈中;当商数不为,继续用商数除N,得到新的商数和余数,余数入栈。当商数为0,循环结束。hile(!=0) e%n; s.push(e); m/n; 5输出转化结果,若N为6时则按照如下规则输出结果Syt.out.pritln(转化结果为:);while(sisEmp

24、y()!=true) is.pp(); if(n=6) if(i=0)ystem.ot.prnt(A); lse f(i=1)Systm.out.prin(B); els if(=2) Sstmou.pi(C+); ele f(i=13)Systemut.print(D); elsif(14) Sysem.opint(E); lse if(i=15) Systm.ouprint(F+); ese ste.out.print(i); ese Sytem.out.rit(+); Sstem.out.printn(); 11.写出利用栈和队列,判断一个字符串是否是回文串的算法。1.取出字符串中的一个

25、字符,分别入栈和入队列。oleanal(Strg str)f(i=0;isrlength();) ch=st.carAt(i); S.psh(ch); .add(ch);2重复第1步,直到字符串结束。3.栈顶元素出栈,队头元素出队列,两者比较是否相等 3.如果不相等,则该字符串不是回文串.2 如果相等,重复第3步,直到栈为空或者队列为空。whil(S.isEmpy()=fa)ch1=.pop(); c2Q.ll();if(ch1!=ch2) return false;4.如果栈为空或者队列为空,则该字符串是回文串。if(.isEmp()=ru)etrn tre;12.写出求!的递归算法。t fu(t n) f(=n0)etrn 1;lse urn n(n1);13.写出求2个正整数m*n的递归算法。in u(int m,int) if(m=0|n=0)rtrn ; e if(m=1)retrn;ese reurn n+mul(m-1,);14.写出递归算法求数组中最大值、最小值和平均值。求数组中的最大值1定义递归函数nt max(itA, intn)2.判断n是否为12.1若n为1则返回结果0跳转至2.2若n不为1则执行递归体并跳转至2if(n=1)ret

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

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