收藏 分享(赏)

数据结构习题集.doc

上传人:tkhy51908 文档编号:6179265 上传时间:2019-03-31 格式:DOC 页数:16 大小:122.50KB
下载 相关 举报
数据结构习题集.doc_第1页
第1页 / 共16页
数据结构习题集.doc_第2页
第2页 / 共16页
数据结构习题集.doc_第3页
第3页 / 共16页
数据结构习题集.doc_第4页
第4页 / 共16页
数据结构习题集.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、数据结构习题第一二章 绪论 线形表一、填充题1、计算机算法分析的两个主要方面分别是 和 。时间复杂度 空间复杂度2、数据元素都不是孤立存在的,而是在它们之间存在着某种关系。这种数据元素之间的相互关系称之为 。结构3、数据结构通常被分为 和 两大类。逻辑结构 物理结构4、线性表的长度被定义为表中元素的 。个数5、所谓的双向链表,是指在每一个结点中,有两个指针域,其中一个指向该结点的直接后继结点,而另一个则指向 。其直接前趋结点6、我们通常把性质相同的数据元素的集合称为 ,它是数据的一个子集。数据对象7、线性表的顺序映象就是逻辑上 的两个数据元素,在物理存储上赋予 位置的一种存储分配方式。相连 相

2、邻8、1976 年,Wirth 教授发表了名为 的著作,该著作在全世界第一次系统地阐明了 的重要作用。算法+数据结构=程序 算法与数据结构在程序设计中9、数据元素之间的相互关系由一组运算和规则描述的数据元素的集合,称为数据的 结构。逻辑10、数据元素之间的关系在计算机中有两种不同的表示方式,即顺序映象和非顺序映象。由此而得出的两种不同的物理结构分别是 和 。顺序物理结构 链式物理结构11、计算机算法必备的三个主要特征分别是 、 和 。确定性、有穷性和可执行性。12、线性表的顺序存储结构是一种 存取的存储结构。随机13、线性表的链式存储结构是一种 存取的存储结构。顺序14、计算机算法是指 。解题

3、步骤的精确描述15、计算机算法分析的目的主要是 分析。效率16、在线性结构中,开始结点 前趋结点,其余每个结点有且只有 前趋结点。没有 一个17、线性表的 被定义为表中元素的个数。长度二、单选题1、计算机算法分析的目的是 。A、使算法简明易懂业务 B、找出数据结构的合理性C、研究算法的输入/输出关系 D、分析算法的效率,寻求改进途径D2、数组通常具有的两种基本操作是 。A、建立与删除 B、索引与修改C、查找与修改 D、查找与索引C三、判断题(正确的写 Y,反之写 N)1、线性链表是一种顺序存取的存储结构。 ( )Y 2、要存储 1000 个人名,用线性链表比用普通数组需要更少的存储空间。 (

4、)N3、能在线性表上进行的操作,就一定能在栈上进行。 ( )N4、虽说静态链表是用数组来实现的,但对其进行插入和删除操作时,却并不涉及数组元素的移动问题。 ( )Y5、由于静态链表是用数组来实现的,所以在对其进行插入和删除操作时,存在着一个数组元素的移动问题。 ( )N6、线性表的顺序存储结构是一种随机存取的存储结构。 ( )Y7、由于线性链表的存取必须顺序进行,所以在线性链表上删除一个结点时,必须移动其后的所有结点,才能继续保持一个顺序存取的关系。 ( )N8、线性表顺序存储结构的存储密度大于线性表的链式存储结构。 ( )Y9、由于线性表的链式存储结构可以见缝插针的有效地利用存储空间,所以线

5、性表的链式存储结构的存储密度大于线性表的顺序存储结构。 ( )N10、线性表的逻辑顺序与存储顺序总是一致的。 ( )N11、线性表的链式存储结构和顺序存储结构不同,它要求内存中可用的存储单元的地址一定是不连续的。 ( )N四、简答题1、什么是线性表?它的三个基本特征是什么?答:所谓线性表,是指由 n(n0)个数据元素构成的有限序列。表中除第一个和最后一个以外的每个数据元素均有且仅有一个直接前趋元素和一个直接后继元素。线性表的三个基本特征是:(1)表中所有数据元素性质相同,即具有相同的数据类型;(2)数据元素在表中的位置只取决于它们自己的序号,数据元素之间的相对位置是线性的;(3)线性表的长度被

6、定义为表中元素的个数。2、什么是时间复杂度?影响时间复杂度主要因素是什么?答:时间复杂度是指:当问题的规模以某种单位由 1 增加到 n 时,依据求解该问题的算法所编制的程序运行时所消耗的时间也以某种单位由 1 增加到 Ctf(n),C t为常数, f(n)是问题规模的函数。我们通常称 T(o)=O(f(n)为时间复杂度。影响时间复杂度主要因素是:程序运行时所需输入的数据总量;对源程序编译的时间以及编译所产生的代码质量;计算机执行每条指令的时间;程序中指令重复执行的次数(语句频度) ,这一点最重要。五、算法设计题1、已知线性链表 LA,用户输入一个数据元素值,假定该值一定在 LA 中。请设计一个

7、在用户给定值的前一个位置插入一个新元素的算法。评分注意:算法设计题的答案通常不唯一;允许学生用某种语言的程序或各种不同的伪码来描述自己的算法;评分时,先考虑算法是否正确解决了问题,然后再考虑算法是否是高效率的。2 一个有序的数据元素序列,以线性链表存储。请设计一个算法,在该链表上插入一个新的数据元素,并保持链表的有序性。评分注意:算法设计题的答案通常不唯一;允许学生用某种语言的程序或各种不同的伪码来描述自己的算法;评分时,先考虑算法是否正确解决了问题,然后再考虑算法是否是高效率的。3、计一个算法,将一个顺序存储的数据元素的有序序列就地逆置。评分注意:算法设计题的答案通常不唯一;允许学生用某种语

8、言的程序或各种不同的伪码来描述自己的算法;评分时,先考虑算法是否正确解决了问题,然后再考虑算法是否是高效率的。 第三章 栈和队列一、填充题(每空 1 分,共 21 分)1、队列是一种限定仅在一端进行插入(入队) ,而在另一端进行删除(出队)的线性表,允许进行删除(出队)操作的一端称之为 。队头2、栈是一种具有先进 出特性的线性表。后二、单选题(每题 2 分,共 24 分)1、栈和队列都是 。A、顺序存储的线性结构 B、链式存储的非线性结构C、限制存取点的非线性结构 D、限制存取点的线性结构D2、表达式(8+3*6)/(2+3*5-4)的逆波兰形式是 。A、8 3 6*+2 3 5*+4-/ B

9、、8+3 6*2+3 5*-4/ C、8+*3 6+2*3 5/4- D、8 3 6 +*2 3 5+*4-/ A 3、设有三个数据元素 X、Y、Z 顺序进栈,在进栈过程中可以出栈,请问下列出栈次序中的错误排列是 。A、XYZ B、YZXC、ZXY D、ZYXC4、在列车调度网络中,有四个车皮编号分别为 1,2,3,4,并按此顺序随时送入栈中进行调度,这些车皮取出的顺序可以是 。A、4123 B、3241C、3412 D、4312B5、一个栈的入栈序列是 a,b,c ,d,e,则栈的不可能的输出序列是 。A、edcba B、decba C、dceab D、abcdeC6、已知一个栈的入栈序列是

10、 1,2,3,n,其输出序列是 p1,p2,p3,pn,如果 p1=n,则 pi 为 。A、i B、n=iC、不确定 D、n-i+1D7、将递归算法转换成对应的非递归算法时,通常需要使用 。A、栈 B、队列C、链表 D、树A三、判断题(正确的写 Y,反之写 N。不答不得分,答错倒扣分。每题 2 分,共 22 分)3、能在线性表上进行的操作,就一定能在栈上进行。 ( )N1、队列具有后进先出的特性。 ( )N2、对栈的操作,构成了对线性表操作的一个子集。 ( )Y3、在用数组实现的顺序队列上,当队列的尾指针指向数组的末尾时,则该队列一定是存满了数据元素。( )N4、一个栈的输入序列是 12345

11、,则可能的一种输出序列是 43512。 ( )N四、简答题(每题 3 分,共 18 分)1、什么是队列的假溢出?通常可以采用什么办法解决假溢出?答:所谓的假溢出是指:在用数组模拟的顺序队列中,队列的尾指针已指向数组的最大下标位置,而头指针却并非指向数组的最小下标的前一位置,而是指向数组中的某一位置。此时若作入队操作,则出现上溢现象,但实际上队列中却并未存满,故称为假溢出。解决的办法通常是移动元素或利用循环队列,前者要增加时间复杂度,后者实现较复杂。第四五章 串 数组和广义表一、填充题(每空 1 分,共 21 分)1、一个串中任意个 的字符组成的子序列称为该串的子串。 连续2、串的静态存储结构中

12、的两种不同的存储方式分别是 格式和 格式。非紧缩 紧缩3、计算 Fibonacci 序列第 n 项的值,可以利用关系式 1:F1=0, F2=0, Fi=Fi-2+Fi-1也可以利用关系式 2:F(1)=0 , F(2)=0 , F(i)=F(i-2)+F(i-1)比较次两种方法可以知道,关系式 1 是 算法,而关系式 2 是 算法。递推(迭代) 递归4、两个串的相等,是指两个两串的 相等, 相同。长度 对应位置的字符二、单选题(每题 2 分,共 24 分)1、给出字符串 A=abcd,它的子串个数是 。A、10 B、9C、11 D、14C2、给出两个串 A=ABCDE,B=ABCdE,它们的

13、关系是不是 。A、B 串大于 A 串 B、B 串等于 A 串C、B 串小于 A 串 D、B 串是 A 串的子串 A 3、设有两个串 A 和 B,求 B 在 A 中首次出现的位置的操作称作 。A、连接 B、求串长C、模式匹配 D、求子串C4、设串 S1=ABCDEFG,串 S2=PQRST,函数 con(x,y)返回 x 和 y 串的连接串,函数 subs(s,i,j) 返回串 s 的从序号 i 的字符开始的 j 个字符组成的子串,而函数 len(s) 则返回串 s 的长度。那么,表达式 con(subs(S1,2,len(S2),subs(S1,len(S2),2)的结果串是 。A、BCDEF

14、 B、BCDEFGC、BCPQRST D、BCDEFEFD5、已知二维数组 A 有 m 行 n 列,采用行优先方式存储,每个数据元素占 k 个存储单元,并且第一个元素的存储地址是 LOC(A1,1),则数据元素 Ai,j的地址是 。LOC(A1,1)+(n(i-1)+(j-1)k6、有一个 10 阶的对称矩阵,采用以行优先的压缩存储方式,已知元素 A1,1的地址为 1,则元素A8,5的地址是 ,元素 A5,8的地址是 。33 337、广义表(a,(a,b),d,e,(i,j),k) 的长度是 ,深度是 。5 38、带头结点 head 的单链表为空的判定条件是 。A、head=NIL B、hea

15、dnext=NILC、head.next=head D、head500,d4。请问用什么排序方法时间复杂度最小?为什么?答:由于 n 很大,d 较小,且英文单词的长度相等,任何单词都是由 26 个字母之几个构成的,故可采用基数排序法。根据题意,dn,基数排序的时间复杂度由 O(d(n+rd)变成 O(n),因此时间复杂度最小。五、算法设计题(每题 5 分,共 15 分)1、已知线性链表 LA,用户输入一个数据元素值,假定该值一定在 LA 中。请设计一个在用户给定值的前一个位置插入一个新元素的算法。2、一个无序的数据元素序列,采用顺序存储结构。请设计一个算法,能在一趟查找过程中找出该序列的最大元素和最小元素。3、已知由 n 个数据元素构成的无序序列,请设计一个算法,利用冒泡法将该序列从小到大排列。4、一个有序的数据元素序列,以线性链表存储。请设计一个算法,在该链表上插入一个新的数据元素,并保持链表的有序性。5、设计一个算法,将一个顺序存储的数据元素的有序序列就地逆置。6、一个有序的数据元素序列,以顺序方式存储。请设计一个在该序列上实施折半查找的算法。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 试题课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报