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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构期末考试题集.docx

1、数据结构期末考试题集数据结构的基本概念选择题(1) 顺序存储结构中数据元素之间的逻辑关系是由( )表示的,链接存储结构中的数据元素之间的逻辑关系是由( )表示的。A线性结构 B非线性结构 C存储位置 D指针(2) 假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产,子女可以继承父亲或母亲的遗产;子女间不能相互继承,则表示该遗产继承关系的最合适的数据结构应该是( )。A树 B图 C线性表 D集合(3) 计算机所处理的数据一般具有某种内在联系,这是指( )。A数据和数据之间存在某种关系 B元素和元素之间存在某种关系C元素内部具有某种结构 D数据项和数据项之间存在某种关系(4) 在数据结构中,与所使

2、用的计算机无关的是数据的( )。A树 B图 C线性表 D集合(5) 在存储数据时,通常不仅要存储各数据元素的值,还要存储( )。A数据的处理方法 B数据元素的类型C数据元素之间的关系 D数据的存储方法(6) 在链接存储结构中,要求( )。A每个结点占用一片连续的存储区域 B所有结点占用一片连续的存储区域C结点的最后一个域是指针类型 D每个结点有多少个后继就设多少个指针(7) 下列说法不正确的是( )。A数据元素是数据的基本单位 B数据项是数据中不可分割的最小单位C数据可由若干个数据项构成 D数据元素可由若干个数据项构成(8) 以下与数据的存储结构无关的术语是( )。A循环队列 B链表 C散列表

3、 D栈(9) 以下术语属于逻辑结构的是( )。A顺序表 B哈希表 C有序表 D单链表(10) 可以用( )定义一个完整的数据结构。A数据元素 B数据对象 C数据关系 D抽象数据类型(11) 对于数据结构的描述,下列说法中不正确的是( )。A相同的逻辑结构对应的存储结构也必相同B数据结构由逻辑结构、存储结构和基本操作三方面组成C数据结构基本操作的实现与存储结构有关D数据的存储结构是数据的逻辑结构的机内实现(12) 以下关于链接存储结构的叙述中,( )是不正确的。A结点除数据信息外还包括指针域,因此存储密度小于顺序存储结构B逻辑上相邻的结点物理上不一定相邻C可以通过计算得到第i个结点的存储地址D插

4、入和删除操作方便,不必移动结点(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) 抽象数据类型的主要特点是什么数据类型和抽象数据类型的关系如何使用抽象数据类型的主要好处是什么1 算法和算

5、法分析选择题(1) 算法指的是( )。A对特定问题求解步骤的一种描述,是指令的有限序列B计算机程序C解决问题的计算方法D数据处理(2) 下面( )不是算法所必须具备的特性。A有穷性 B确切性 C高效性 D可行性(3) 算法必须具备输入、输出和( )等特性。A可行性、可移植性和可扩充性 B可行性、确定性和有穷性C确定性、稳定性和有穷性 D易读性、稳定性和健壮性(4) 算法应该具有确定性、可行性和有穷性,其中有穷性是指( )。A算法在有穷的时间内终止 B输入是有穷的C输出是有穷的 D描述步骤是有穷的(5) 当输入非法错误时,一个“好”的算法会进行适当处理,而不会产生难以理解的输出结果,这称为算法的

6、( )。A可读性 B健壮性 C正确性 D有穷性(6) 算法分析的目的是( ),算法分析的两个主要方面是( )。A找出数据结构的合理性 B研究算法中输入和输出的关系C分析算法的效率以求改进 D分析算法的易读性和文档性E空间性能和时间性能 F正确性和简明性G可读性和文档性 H数据复杂性和程序复杂性(7) 算法的时间复杂度与( )有关。A问题规模 B计算机硬件性能C编译程序的质量 D程序设计语言(8) 算法的时间复杂度与( )有关。A问题规模 B待处理数据的初态C算法的易读性 DA和B(9) 某算法的时间复杂度是(n2),表明该算法( )。A问题规模是n2 B执行时间等于n2C执行时间与n2成正比

7、D问题规模与n2成正比(10) 下面说法错误的是( )。算法原地工作的含义是指示不需要如何额外的辅助空间在相同的规模n下,复杂度(n)的算法在时间上总是优于复杂度(2n)的算法所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界同一个算法,实现语言的级别越高,执行效率就越低(11) 算法for (i=n-1; i=1; i-) for (j=1; jaj+1) aj与aj+1交换;其中n为正整数,则最后一行语句的频度(执行次数)在最坏情况下是( )。A(n) B(nlog2n) C(n3) D(n2)(12) 算法的时间复杂度属于一种( )。A事前统计的方法 B事先分析估算的方法C事后统计

8、的方法 D事后分析估算的方法(13) 设某算法完成对n个元素进行处理,所需的时间是T(n)=100 nlog2n+200n+500,则该算法的时间复杂度是( )。A(1) B(n) C(nlog2n) D(nlog2n+n)(14) 假设时间复杂度为(n2)的算法在有200个元素的数组上运行需要,则在有400个元素的数组上运行需要( )ms。A B6.2 C Dx(无法确定)(15) 下列程序段加下划线的语句执行( )次。for (m=0,i=1; i=1; i+) for (j=1; j=2*i; j+) m=m+1;An2 B3n Cn(n+1) Dn3应用题(16) 将下列函数按它们的n

9、时的无穷大阶数,从小到大排列。n,n-n3-7n5,nlog2n,2n/2,n3,log2n,n1/2+log2n,(3/2)n,n!,n2+log2n(17) 分析以下程序段,并用大记号表示其执行时间。1 i=1;k=0;while (in-1) k=k+10*i; i+;2 i=1;j=0;while (i+jj) j+; else i+;3 for (i=1;i=n;i+)for (j=1;j=i;j+) for (k=1;k=j;k+) x+;4 i=1;k=0;do k=k+10*i; i+; while (i=n)5 y=0;while (y+1)*(y+1)=n) y=y+16

10、for (i=0;in;i+)for (j=0;jm;j+) aij=0;(18) 有实现同一功能的两个算法A1和A2,其中A1的时间复杂度为T1=(2n),A2的时间复杂度为T2=(n2),仅就时间复杂度而言,请具体分析这两个算法哪一个好。综合应用题(19) 设n是偶数,且有程序段:for (i=1;i=n;i+) if (2*i=n) for (j=2*I;jnext=p-next-next Bp-next=p-nextCp=p-next-next Dp=p-next; p-next=p-next-next(8) 在一个单链表中,已知q所指结点是p所指结点的直接前驱,若在q和p之间插入s所

11、指结点,则执行( )操作。As-next=p-next; p-next=s; Bq-next=s; s-next=p;Cp-next=s-next; s-next=p; Dp-next=s; s-next=q(9) 在一个长度为n(n1)的带头结点的单链表h上,另设有尾指针r指向尾结点,执行( )操作与链表的长度有关。A删除单链表中的第一个元素B删除单链表中的最后一个元素C在单链表第一个元素前插入一个新元素D在单链表的最后一个元素后插入一个新元素(10) 在单链表中附加头结点的目的是为了( )。A保证单链表中至少有一个结点 B标识单链表中首结点的位置C方便运算的实现 D说明单链表是线性表的链式

12、存储(11) 将长度为n个单链表链接在长度为m的单链表之后的算法,其时间复杂度是( )。A(1) B(n) C(m) D(n+m)(12) 循环单链表的主要优点是( )。A不再需要头指针了B从表中任一结点出发都能扫描到整个链表C已知某个结点的位置后,能够容易找到它的直接前驱D在进行插入、删除操作时,能更好地保证链表不断开(13) 将线性表(a1,a2,an)组织为一个带头结点的循环单链表,设H为链表的头指针,则链表中最后一个结点的指针域中存放的是( )。A变量H的地址 B变量H的值C元素a1的地址 D空指针(14) 非空的循环单链表L的尾结点p满足( )。Ap=NULL Bp-next=NUL

13、L Cp-next=L Dp=L(15) 若要在(1)的时间内实现两个循环单链表的首尾相接,则两个循环单链表应各设一个指针,分别指向( )。A各自的头结点 B各自的尾结点C各自的第一个元素结点 D一个表的头结点,一个表的尾结点(16) 设线性表非空,( )可以在(1)的时间内在表尾插入一个新结点。A带头结点的单链表,有一个链表指针指向头结点B带头结点的循环单链表,有一个链表指针指向头结点C不带头结点的单链表,有一个链表指针指向表的第一个结点D不带头结点的循环单链表,有一个链表指针指向表中某个结点(除第一个结点外)(17) 设指针rear指向带头结点的循环单链表的尾指针,若要删除链表的第一个元素

14、结点,正确的操作是( )。As=rear; rear=rear-next;Brear=rear-next;Crear=rear-next-next;Ds=rear-next-next; rear-next-next=s-next;(18) 设有两个长度为n个单链表,以h1为头指针的链表是非循环的,以h2为尾指针的链表是循环的,则( )。A在两个链表上删除第一个结点的操作,其时间复杂度均为(1)B在两个链表的表尾插入一个结点的操作,其时间复杂度均为(n)C循环链表要比非循环链表占用更多的存储空间D循环链表要比非循环链表占用更少的存储空间(19) 使用双链表存储线性表,其优点是可以( )。A提高查

15、找速度 B更方便数据的插入和删除C节约存储空间 D很快回收存储空间(20) 与单链表相比,双链表的优点之一是( )。A插入和删除操作更简单 B可以进行随机访问C可以省略表头指针或表尾指针 D访问其后相邻结点更灵活(21) 带头结点的循环双链表L为空表的条件是( )。AL-next-prior=NULL BL-prior=LCL-next=L DB和C都对(22) 在循环双链表的p所指结点后插入s所指结点的操作是( )。Ap-next=s; s-prior=p; p-next-prior=s; s-next=p-next;Bp-next=s; p-next-prior=s; s-prior=p;

16、 s-next=p-next;Cs-prior=p; s-next=p-next; p-next=s; p-next-prior=s;Ds-prior=p; s-next=p-next; p-next-prior=s; p-next=s;(23) 在双链表中指针pa所指结点后面插入pb所指结点,执行的语句序列是( )。pb-next=pa-next; pb-prior=pa;pa-next=pb; pa-next-prior=pb;A B C D(24) 在一个双链表中,删除结点p的操作是( )。Ap-prior-next=p-next; p-next-prior=p-prior;Bp-pri

17、or=p-prior-prior; p-prior-prior=p;Cp-next-prior=p; p-next=p-next-next;Dp-next=p-prior-prior; p-prior=p-prior-prior;应用题(25) 单链表设置头结点的作用是什么(26) 线性表的顺序存储结构具有三个弱点:其一,插入或删除操作需要移动大量元素;其二,由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;其三,表的容量难以扩充。试问,线性表的链接存储结构是否能够克服上述三个弱点(27) 若频繁地对一个线性表进行插入和删除操作,该线性表采用什么存储结构比较好(28) 设n

18、表示线性表中的元素个数,P表示指针所需的存储单元大小,E表示存储数据元素所需的存储单元大小,则使用单链表存储方式存储该线性表需要多少存储空间(不考虑头结点)算法设计题(29) 设计算法依次打印单链表中每个结点的数据信息。(30) 求单链表的长度。(31) 设计算法将值为x的结点插入到不带头结点的单链表L中值为k的结点之前,若找不到值为k的结点,则将x插入到链表的末尾。(32) 判断非空单链表是否递增有序。(33) 已知非空线性链表由list指出,结点结构为(data,link)。请编写算法,将链表中数据域最小的结点移到链表的最前面。要求:不得额外申请新的结点。(34) 给定一个带头结点的单链表

19、,设head为头指针,设计算法按递增次序输出单链表中各结点的数据元素,并释放结点所占的存储空间(要求:不允许使用数组作辅助空间)。(35) 已知非空线性链表由list指出,设计算法交换p所指结点与其后续结点在链表中的位置(设p所指结点不是链表的最后一个结点)。(36) 设计算法实现将单链表就地逆置。(37) 头插法建立单链表。(38) 尾插法建立单链表(39) 复制一个单链表。(40) 设计算法实现将单链表就地逆置。(41) 在一个有序单链表(假设从小到大排列)中插入一个元素值为x的结点,使得插入后单链表仍然有序。(42) 设单链表以非递减有序排列,设计算法实现在单链表中删去值相同的多余结点。

20、(43) 已知单链表中各结点的元素值为整型且递增有序,设计算法删除表中大于mink且小于maxk的所有元素,并释放被删结点的存储空间。(44) 有两个整数序列A=(a1,a2,am)和B=(b1,b2,bn)已经存入两个单链表中,设计算法判断序列B是否是序列A的子序列。(45) 设线性表C=(a1,b1,a2,b2,an,bn)采用带头结点的单链表存储,设计算法将表C拆分为两个线性表A和B,使得A=(a1,a2,an),B=(b1,b2,bn)。(46) 有两个递增有序的单链表la和lb,设计算法将这两个单链表合并为一个有序链表。(47) 有两个有序的单链表,一个表为升序,另一个表为降序,设计算法将这两个链表合并为一个有序链表。(48) 已知单链表A和B的数据(设为整型)递增有序,设计算法利用原有结点,将表A中与表B具有相同值的结点删除,将表B

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

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