数据结构期末考试题集.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《数据结构期末考试题集.pdf》由会员分享,可在线阅读,更多相关《数据结构期末考试题集.pdf(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构的基本概念选择题(1)顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。A.线性结构 B。非线性结构。C存 储 位 置。D.指针(2)假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产,子女可以继承父亲或母亲的遗产;子女间不能相互继承,则表示该遗产继承关系的最合适的数据结构应 该 是()oA.树0 B.图。0 Co线性表 0 Do集合(3)计算机所处理的数据一般具有某种内在联系,这 是 指()。A o数据和数据之间存在某种关系 B.元素和元素之间存在某种关系C.元素内部具有某种结构。D.数据项和数据项之间存在某种关系(4)在数据结
2、构中,与所使用的计算机无关的是数据的().A.树。o B.图 o Co线性表。D.集合(5)在存储数据时,通常不仅要存储各数据元素的值,还 要 存 储()。A.数据的处理方法。B.数据元素的类型C.数据元素之间的关系 D.数据的存储方法(6)在链接存储结构中,要 求()。A.每个结点占用一片连续的存储区域。B.所有结点占用一片连续的存储区域C.结点的最后一个域是指针类型。D.每个结点有多少个后继就设多少个指针(7)下列说法不正确的是().A.数据元素是数据的基本单位。B.数据项是数据中不可分割的最小单位C 数据可由若干个数据项构成。D。数据元素可由若干个数据项构成(8)以下与数据的存储结构无关
3、的术语是()。A循环队列。B,链表。C。散列表。D.栈(9)以下术语属于逻辑结构的是()。A。顺序表。Bo哈希表。C.有序表。D.单链表(10)可 以 用()定义一个完整的数据结构。A。数据元素。B.数据对象。C.数据关系 D.抽象数据类型(11)对于数据结构的描述,下 列 说 法 中 不 正 确 的 是()。A.相同的逻辑结构对应的存储结构也必相同B.数据结构由逻辑结构、存储结构和基本操作三方面组成C.数据结构基本操作的实现与存储结构有关D.数据的存储结构是数据的逻辑结构的机内实现(12)以下关于链接存储结构的叙述中,()是不正确的。A.结点除数据信息外还包括指针域,因此存储密度小于顺序存储
4、结构B.逻辑上相邻的结点物理上不一定相邻C o可以通过计算得到第i个结点的存储地址D。插入和删除操作方便,不必移动结点(13)可 以 用()、数据关系和基本操作定义一个完整的抽象数据类型.A.数据元素。B.数据对象。C.原子类型。D.存储结构应用题(14)设有数据结构(D,R),其中 D=1,2,3,4,5,6),R=(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6).试画出其逻辑结构图并指出属于何种结构。(15)试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。(16)说明数据的逻辑结构和存储结构之间的关系。(17)抽象数据类型
5、的主要特点是什么?数据类型和抽象数据类型的关系如何?使用抽象数据类型的主要好处是什么?1 4算法和算法分析选择题(1)算法指的是()OA.对特定问题求解步臊的一种描述,是指令的有限序列B.计算机程序C.解决问题的计算方法D.数据处理(2)下面()不是算法所必须具备的特性。A.有穷性。B.确切性。C o高效性。D。可行性(3)算法必须具备输入、输出和()等特性。A。可行性、可移植性和可扩充性 B.可行性、确定性和有穷性C.确定性、稳定性和有穷性 D.易读性、稳定性和健壮性(4)算法应该具有确定性、可行性和有穷性,其中有穷性是指(_ _ _)A.算法在有穷的时间内终止。B 输入是有穷的C o输出是
6、有穷的 o 0 D.描述步骤是有穷的(5)当输入非法错误时,一个“好”的算法会进行适当处理,而不会产生难以理解的输出结果,这称为算法的().A.可读性。B o 健壮性。C.正确性。D.有穷性(6)算法分析的目的是(),算法分析的两个主要方面是()。A.找出数据结构的合理性。B.研究算法中输入和输出的关系C.分析算法的效率以求改进。D.分析算法的易读性和文档性E o 空间性能和时间性能 F 正确性和简明性G.可读性和文档性。H.数据复杂性和程序复杂性(7)算法的时间复杂度与()有关.A.问题规模。B.计算机硬件性能C.编译程序的质量。D。程序设计语言(8)算法的时间复杂度与()有关.A 问题规模
7、。B.待处理数据的初态C.算法的易读性。口5和 8(9)某算法的时间复杂度是0(n 与,表 明 该 算 法(A。问题规模是南。B.执行时间等于r?C.执行时间与n?成正比。D.问题规模与r?成正比(10)下面说法错误的是()算法原地工作的含义是指示不需要如何额外的辅助空间在相同的规模n 下,复杂度O(n)的算法在时间上总是优于复杂度0(2)的算法所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界同一个算法,实现语言的级别越高,执行效率就越低(I I)算法for(i=n 1;i)=1 ;i )。fo r (j=1;j 2 上+1)2 口 与 2 口+1交换;其 中n 为正整数,则最后一行语
8、句的频度(执行次数)在最坏情况下是()。A,O (n)B.O (n log2n)C.O (n3)。D.O (n2)(12)算法的时间复杂度属于一种()。A.事前统计的方法。B o 事先分析估算的方法C.事后统计的方法。D,事后分析估算的方法(13)设 某 算 法 完 成 对 n 个 元 素 进 行 处 理,所 需 的 时 间 是 T(n)=1 0 0 nlog2n+200n+50 0,则该算法的时间复杂度是().A.O (1)0 0 B.O (n)C.O (nl o g2 n)D.O (n lo g 2n+n)(14)假设时间复杂度为0(n?)的算法在有200个元素的数组上运行需要3.1m s
9、,则在有400个元素的数组上运行需要()ms A。3。1 B.60 2。C.12o 4。D。x(无法确定)(15)下列程序段加下划线的语句执行()次。fo r (m=0,i=1;i=1;i+)。for(j=1 ;j j)J+;eIse i+;fo r (i=1;i =n;i+)for(j=1;j =i;j+)。fo r(k=1;k=j;k+)。x+;i=1;k=0;d o(o k=k+10*i;。i+;w h ile (i =n)y=0;w h i Ie(y+1)*(y+1)=n)y=y+l for(i=0;i n;i+)f o r(j=0;j m ;j+)a i j =0;(18)有实现同一
10、功能的两个算法A 1和A 2,其 中A1的时间复杂度为T尸O (2),A2的时间复杂度为Tz=O(n2),仅就时间复杂度而言,请具体分析这两个算法哪一个好。综合应用题(19)设n是偶数,且有程序段:f o r (i=1 ;i=n;i+)if(2*i=n)。f or(j=2*l;j next。B.p-n e x t=p n e x tC.p=p n e x t ne x t 。D.p=p-n ex t ;p ne x t =p-nex t ne x t(8)在一个单链表中,已知q所指结点是p所指结点的直接前驱,若在q和p之间插 入s所指结点,则 执 行()操作。Ao s next=p-next;
11、p-n ext=s;。B.qne x t =s;s-next=p;C.p n e x t =s n e x t;s-n e xt=p;。D.p-n e xt=s;s-next=q(9)在一个长度为n(n1)的带头结点的单链表h上,另设有尾指针r指向尾结点,执 行()操作与链表的长度有关。A 删除单链表中的第一个元素B.删除单链表中的最后一个元素C.在单链表第一个元素前插入一个新元素D.在单链表的最后一个元素后插入一个新元素(10)在单链表中附加头结点的目的是为了().A.保证单链表中至少有一个结点。B.标识单链表中首结点的位置C.方便运算的实现。D.说明单链表是线性表的链式存储(11)将 长
12、度 为 n 个单链表链接在长度为m 的单链表之后的算法,其时间复杂度是().A.O (1 )0 0 6 B.O (n)o C.O (m)D.O (n+m)(12)循环单链表的主要优点是()。A.不再需要头指针了B。从表中任一结点出发都能扫描到整个链表C.已知某个结点的位置后,能够容易找到它的直接前驱D.在进行插入、删除操作时,能更好地保证链表不断开(13)将线性表(a,a z,,为)组织为一个带头结点的循环单链表,设 H 为链表的头指针,则 链 表 中 最 后 一 个 结 点 的 指 针 域 中 存 放 的 是().A.变量H 的地址。B.变量H 的值C o 元 素a i的地 址。D.空指针(
13、14)非空的循环单链表L 的尾结点p 满 足().A.p=NULl_ B.p n e xt=NULL C.p-n e x t=L。D.p=L(15)若要在0(1)的时间内实现两个循环单链表的首尾相接,则两个循环单链表应各设一个指针,分 别 指 向()。A.各自的头结点。B.各自的尾结点C.各自的第一个元素结点。D.一个表的头结点,一个表的尾结点(16)设线性表非空,()可以在0(1)的时间内在表尾插入一个新结点。A.带头结点的单链表,有一个链表指针指向头结点B o 带头结点的循环单链表,有一个链表指针指向头结点C.不带头结点的单链表,有一个链表指针指向表的第一个结点D.不带头结点的循环单链表,
14、有一个链表指针指向表中某个结点(除第一个结点外)(17)设指针r e a r 指向带头结点的循环单链表的尾指针,若要删除链表的第一个元素结点,正确的操作是()。A.s=re a r;re a r=r ear next;B.re a r=r ear-n e x t;C.rea r=r e a r-n ext n e x t;D.s=r e ar ne x t -n ex t ;r ear-next n ext=s-n ext;(18)设有两个长度为n 个单链表,以 h i 为头指针的链表是非循环的,以 h 2 为尾指针的链表是循环的,则()。A.在两个链表上删除第一个结点的操作,其时间复杂度均为
15、O (1)B.在两个链表的表尾插入一个结点的操作,其时间复杂度均为O (n)C.循环链表要比非循环链表占用更多的存储空间D.循环链表要比非循环链表占用更少的存储空间(19)使用双链表存储线性表,其优点是可以()。A.提高查找速度。B.更方便数据的插入和删除C.节约存储空间。D.很快回收存储空间(2 0)与单链表相比,双链表的优点之一是()。A.插入和删除操作更简单 B.可以进行随机访问C.可以省略表头指针或表尾指针 D.访问其后相邻结点更灵活(2 1)带头结点的循环双链表L为空表的条件是()。A.Lnextp r ior=NULl_。B.L-)pr ior=LC.Lne x t=L。D.B 和
16、 C 都对(2 2)在循环双链表的p所指结点后插入s所指结点的操作是()oA.p-n e x t=s;s-pr i or=p;pn e x tpr i o r=s;s-ne x t=p-nex t;B.p-next=s;p nextpr i o r=s;s-p r i o r=p;s-n e x t=pnext;C.s-pr ior=p;sn e x t=p_)n e xt;p-nex t=s;p n e x t-pr i or=s;D.s-pr ior=p;sne x t=p-next;p-next-pr ior=s;p n e x t=s;(2 3)在 双 链 表 中 指 针p a所 指
17、结 点 后 面 插 入p b所指结点,执行的语句序列是(pb-n e x t=p a n e x t;。pb p r ior=pa;pa-next=pb;。pa-nex t pr ior=p b;A.。B.。C.。D.(2 4)在一个双链表中,删除结点p的 操 作 是()oA。p)p r i or n e x t=p next;p n e xt p r i o r=p pr i or;B.p-p r ior=p-p r i orpr i o r;pp r ior-p r ior=p;C.p-ne x tpr i or=p;pnext=p-ne x t-nex t;D.p-next=p p r
18、ior-pr io r;p pr ior=p pr iorpr i or;应用题(2 5)单链表设置头结点的作用是什么?(2 6)线性表的顺序存储结构具有三个弱点:其一,插入或删除操作需要移动大量元素;其二,由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用:其三,表的容量难以扩充。试问,线性表的链接存储结构是否能够克服上述三个弱点?(2 7)若频繁地对一个线性表进行插入和删除操作,该线性表采用什么存储结构比较好?(2 8)设n表示线性表中的元素个数,P表示指针所需的存储单元大小,E表示存储数据元素所需的存储单元大小,则使用单链表存储方式存储该线性表需要多少存储空间(不考虑头
19、结点)?算法设计题(29)设计算法依次打印单链表中每个结点的数据信息。(30)求单链表的长度。(31)设计算法将值为x的结点插入到不带头结点的单链表L中值为k的结点之前,若找不到值为k的结点,则 将x插入到链表的末尾。(32)判断非空单链表是否递增有序。(33)已知非空线性链表由lis t指出,结点结构为(d at a,I ink)。请编写算法,将链表中数据域最小的结点移到链表的最前面。要求:不得额外申请新的结点。(34)给定一个带头结点的单链表,设head为头指针,设计算法按递增次序输出单链表中各结点的数据元素,并释放结点所占的存储空间(要求:不允许使用数组作辅助空间)。(35)已知非空线性
20、链表由l i s t指出,设计算法交换p所指结点与其后续结点在链表 中 的 位 置(设p所指结点不是链表的最后一个结点)。(36)设计算法实现将单链表就地逆置。(37)头插法建立单链表.(38)尾插法建立单链表(39)复制一个单链表。(40)设计算法实现将单链表就地逆置。(41)在一个有序单链表(假设从小到大排列)中插入一个元素值为x的结点,使得插入后单链表仍然有序.(42)设单链表以非递减有序排列,设计算法实现在单链表中删去值相同的多余结点。(43)已知单链表中各结点的元素值为整型且递增有序,设计算法删除表中大于mink且小于m a x k的所有元素,并释放被删结点的存储空间.(44)有两个
21、整数序列A=(ai,a2,am)和B=(b”b2,b )已经存入两个单链表中,设计算法判断序列B是否是序列A的子序列.(45)设线性表0=(a,b,a2,b2,a,b)采用带头结点的单链表存储,设计算法将表C拆分为两个线性表A和B,使 得A=(a“az,-,a),B=(bi,b2,b)(46)有两个递增有序的单链表la和lb,设计算法将这两个单链表合并为一个有序链表。(47)有两个有序的单链表,一个表为升序,另一个表为降序,设计算法将这两个链表合并为一个有序链表。(48)已知单链表A和B的数据(设为整型)递增有序,设计算法利用原有结点,将表A中与表B具有相同值的结点删除,将表B中与原表A不同值
22、的结点存入表A中,并保持表A的递增有序。(49)设计算法将循环单链表就地逆置。(50)已知L为单链表的头结点地址,表中共有m(m3)个结点,从 表 中 第i个(1i n ext(4)线性表的静态链表存储与顺序存储相比,优点是().A.所有基本操作的算法实现简单。B 便于随机存取C.便于插入和删除。D。便于利用零散的存储空间(5)下图所示数组中以静态链表形式存储了一个线性表,设头指针为a0.link,则该线性表的元素依次为()OC.74,25 ,4 5 ,60,4 0,63。D。25,4 5 ,60,40,6 3 ,746 线性表综合选择题(1)下面关于线性表的叙述中,错 误 的 是().A。线
23、性表采用顺序存储,必须占用一片连续的存储单元B.线性表采用顺序存储,便于进行插入和删除操作C.线性表采用链接存储,不必占用一片连续的存储单元D.线性表采用链接存储,便于插入和删除操作(2)若某线性表中最常用的操作是取第i个元素和找第i个元素的前驱,则采用()存储方法最节约时间。A.顺序表。B o单链表。C.双链表 D.循环单链表(3)若链表中最常用的操作是在最后一个结点之后插入一个结点和删除第一个结点,则 采 用()存储方法最节约时间。A o单链表。o B o循环双链表C.循环单链表。D.带尾指针的循环单链表(4)设线性表有n个元素,以下操作中,()在顺序表上实现比在链表上实现的效率更高。A.
24、输 出 第i(1 W iW n)个元素值B.交换第1个和第2个元素的值C.顺序输出所有n个元素D.查找与给定值x相等的元素在线性表中的序号(5)如果对于具有n(n 1)个元素的线性表的基本操作有4种:删除第一个元素;删除最后一个元素;在第一个元素前插入新元素;在最后一个元素的后面插入新元素。则 最 好 使 用()。A.只设尾指针的循环单链表B.只设尾指针的非循环单链表C 只设头指针的循环双链表D.同时设置头指针和尾指针的循环单链表应用题(6)请比较线性表的两种基本的存储结构顺序表和单链表。(7)举例说明对相同的逻辑结构,同一种运算在不同的存储方式下实现,算法的效率不同。(8)如果某线性表中数据
25、元素的类型不一致,但是希望能根据下标随机存取每个元素,请为这个线性表设计一个合适的存储结构。(9)线性链表有哪几种常见的变形?各有何特点?算法设计题(10)用顺序表表示集合,设计算法实现集合的求交集运算.(11)用顺序表表示集合,设计算法实现集合的求并集运算。(12)用顺序表表示集合,设计算法实现集合的求差集运算,要求不另外开辟空间。(13)假定以有序表表示集合,设计算法判断两个给定集合是否相等.(14)设两个单链表L1和L2分别表示两个集合,设计算法判断L1是否是L 2的子集。(15)已知两个不带头结点的单链表A和B分别表示两个集合,并且其元素值递增有序,求A、B的交集C,并以同样的递增形式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 期末 考试题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内