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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构练习题线性表习题及答案Word格式.docx

1、L.last=L.last+1;11.对于顺序表的插入算法 insert_sqlist 来说,若以结点移动为标准操作,则插入算法的最坏 时间复杂性为 ,量级是 。插入算法的平均时间复杂性为 ,平均时间复杂性量级是 。12.以下为顺序表的删除运算,分析算法,请在 处填上正确的语句。void delete_sqlist(sqlist L,int i) /* 删除顺序表 L 中的第 i-1 个位置上的结点 */if(inext!=NULL)j+;return(j); /* 回传表长 */25.以下为单链表按序号查找的运算,分析算法,请在 处填上正确的语句。pointer find_lklist(lk

2、list head,int i) p=head;while( ) p=p-next; j+; if(i=j) return(p);else return(NULL);26.以下为单链表的定位运算,分析算法,请在 处填上正确的语句int locate_lklist(lklist head,datatype x)0*/* 求表 head 中第一个值等于 x 的结点的序号。不存在这种结点时结果为while( )p=p-if (p-data=x) return(j); return(head);该建表算法的时间复杂性约等于 ,其量级为 处填上正确的语句。 直接实现的建表算法。 */30.以下为单链表的

3、建表算法,分析算法,请在 lklist create_lklist2() /* head=malloc(size);p=head;scanf( “ %f” ,&x); while(x!= $ ) q=malloc(size); q-data=x; p-next=q;scanf( “%f” ,&return(head);此算法的量级为 。31除单链表之外,线性表的链式存储结构还有 和 等。32循环链表与单链表的区别仅仅在于其尾结点的链域值不是 ,而是一个指向 的指针。33在单链表中若在每个结点中增加一个指针域 , 所含指针指向前驱结点,这样构成的链表中有两个方向不同的链,称为 。34C 语言规定

4、,字符串常量按 处理,它的值在程序的执行过程中是不能改变的。而串变量与其他变量不一样,不能由 语句对其赋值。35含零个字符的串称为 串,用 表示。其他串称为 串。任何串中所含 的个数称为该串的长度。36当且仅当两个串的 相等并且各个对应位置上的字符都 时, 这两个串相等。 一个串中任意个连续字符组成的序列称为该串的 串,该串称为它所有子串的 串。37串的顺序存储有两种方法:一种是每个单元只存一个字符, 称为 格式, 另一种是每个单元存放多个字符,称为 格式。38通常将链串中每个存储结点所存储的字符个数称为 。当结点大小大于 1 时,链串的最后一个结点的各个数据域不一定总能全被字符占满, 此时,

5、应在这些未用的数据域里补上 。三、单向选择题1 对于线性表基本运算,以下结果是正确的是 ( )1初始化 INITIATE(L) ,引用型运算,其作用是建立一个空表 L=. 求表长 LENGTH(L),引用型运算,其结果是线性表 L 的长度3读表元 GET(L,i), 引用型运算。若 1data 是一个数据元素, p-next 的值是一个指针11.单链表的一个存储结点包含 ( )1数据域或指针域2指针域或链域3指针域和链域4数据域和链域12.对于单链表表示法,以下说法错误的是 ( )1数据域用于存储线性表的一个数据元素2指针域或链域用于存放一个指向本结点所含数据元素的直接后继所在结点的指针 所有

6、数据通过指针的链接而组织成单链表 NULL称为空指针,它不指向任何结点,只起标志作用13.对于单链表表示法,以下说法错误的是 ( )1指向链表的第一个结点的指针,称为头指针2单链表的每一个结点都被一个指针所指3任何结点只能通过指向它的指针才能引用4终端结点的指针域就为 NULL5尾指针变量具标识单链表的作用,故常用尾指针变量来命名单链表 14有时为了叙述方便,可以对一些概念进行简称,以下说法错误的是 ( )1将“指针型变量”简称为“指针”2将“头指针变量”称为“头指针” 将“修改某指针型变量的值”称为“修改某指针”将“ p 中指针所指结点”称为“ P值”15设指针 P 指向双链表的某一结点,则

7、双链表结构的对称性可用( )式来刻画1p-prior-next-=p-next2p-prior3p-4p-next=p-16. 以下说法错误的是 ( ) 对循环链表来说,从表中任一结点出发都能通过前后操作而扫描整个循环链表 对单链表来说,只有从头结点开始才能扫描表中全部结点 双链表的特点是找结点的前趋和后继都很容易对双链表来说,结点 *P 的存储位置既存放在其前趋结点的后继指针域中,也存放在它的后继 结点的前趋指针域中。17在循环链表中, 将头指针改设为尾指针 ( rear )后,其头结点和尾结点的存储位置分别是 ( ) real 和 rear-2rear-next 和 real3rear-n

8、ext 和 rear4rear 和 rear-18. 以下说错误的是 ( )对于线性表来说,定位运算在顺序表和单链表上的量级均为 O( n)2读表元运算在顺序表上只需常数时间 O( 1)便可实现,因此顺序表是一种随机存取结构3在链表上实现读表元运算的平均时间复杂性为 O( 1)4链入、摘除操作在链表上的实现可在 O( 1)时间内完成5O(n)链入、摘除操作在顺序表上的实现,平均时间复杂性为 19在串的基本运算中,属于加工型运算的有 ( )EQAL(S,T) LENGTH(S)3CONCAT(S,T) REPLACE(S,T,R) INDEX(S,T) 20. 在串的基本运算中,属于引用型运算的

9、有 ( ) ASSIGN(S,T) INSERT(S1,i,S2)3DELETE(S,i,j) SUBSTR(S,i,j) REPLACE(S,T,R)21循环链表主要优点是 ( )不再需要头指针了 已知某个结点的位置后,能够容易找到它的直接前趋 在进行插入、删除运算时,能更好地保证链表不断开 从表中任一结点出发都能扫描到整个链表 22,每种数据结构都具备三个基本操作 : 插入、删除和查找,这种说法 ( )正确 错误 23以下说法错误的是 ( ) 数据的物理结构是指数据在计算机内实际的存储形式 算法和程序没有区别,所以在数据结构中二者是通用的 对链表进行插人和删除操作时,不必移动结点 双链表中

10、至多只有一个结点的后继指针为空 24以下说法正确的是线性结构的基本特征是:每个结点有且仅有一个直接前趋和一个直接后继 线性表的各种基本运算在顺序存储结构上的实现均比在链式存储结构上的实现效率要低 在线性表的顺序存储结构中,插人和删除元素时,移动元素的个数与该元素位置有关 顺序存储的线性表的插人和删除操作不需要付出很大的代价, 因为平均每次操只有近一半的元 素需要移动25以下说法错误的是 ( )求表长、定位这二种运算在采用顺序存储结构时实现的效率不比采用链式存储结构时实现的效 率低2顺序存储的线性表可以随机存取 由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活 线性表的链式存储结构优于顺

11、序存储结构26以下说法错误的是 ( )线性表的元素可以是各种各样的,逻辑上相邻的元素在物理位置上不一定相邻 在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上不一定相邻 在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素 27以下说法正确的是( )在单链表中, 任何两个元素的存储位置之间都有固定的联系, 因为可以从头结点进行查找任何 一个元素2因此, 单链表是随机存取的存储在单链表中,要取得某个元素,只要知道该元素的指针即可,结构3顺序存储结构属于静态结构,链式结构属于动态结构 顺序存储方式只能用于存储

12、线性结构28.以下说法正确的是( ) 顺序存储方式的优点是存储密度大、且插入、删除运算效率高 链表的每个结点中都恰好包含一个指针 线性表的顺序存储结构优于链式存储结构4顺序存储结构属于静态结构,链式结构属于动态结构29.下面关于线性表的叙述正确的是 ( ) 线性表采用顺序存储,必须占用一片连续的存储单元 线性表采用顺序存储,便于进行插人和删除操作 线性表采用链接存储,不必占用一片连续的存储单元 线性表采用链接存储,不便于插人和删除操作30.线性表 L=(a,a,.,a,.,a), 下列说法正确的是 ( )n12i 每个元素都有一个直接前驱和直接后继 线性表中至少要有一个元素表中诸元素的排列顺序

13、必须是由小到大或由大到小的4除第一个元素和最后一个元素外其余每个元素都有一个且仅有一个直接前驱和直接后继31.线性表的逻辑顺序与存储顺序总是一致的,这种说法正确 不正确32.设 p,q 是指针 , 若 p=q, 则 *p=*q , 这种说法 ( )33.线性表若采用链表存储结构时,要求内存中可用存储单元的地址必需是联系的 部分地址必须是连续的一定是不连续的 连续不连续都可以34.,则删除表首结点的操作可表示为设 REAR是指向非空带头结点的循环单链表的尾指针 ( ) rear=rear-free(rear);p=rear; rear=rear-free(p)3rear=rear- p=rear

14、- rear-next=p-free(p);35. 单链表中,增加头结点的目的是为了 ( )使单链表至少有一个结点 标示表结点中首结点的位置3方便运算的实现 说明单链表是线性表的链式存储实现36 线性结构中的一个结点代表一个数据元素,通常要求同一线性结构的所有结点所代表的数据 元素具有相同的特性,这意味着 每个结点所代表的数据元素都一样。2每个结点所代表的数据元素包含的数据项的个数要相等 不仅数据元素包含的数据项的个数要相同,而且对应数据项的类型要一致4结点所代表的数据元素有同一特点 37带头结点的单链表 Head 为空的判定条件是 Head=Null Head-next=NULL Head-

15、next=Head38.非空的单循环链表 L 的尾结点 *P, 满足P-next=L P=L.next=NULL P=NULL39.双向链表结点结构如下:LLinkdataRLink 其中: LLink 是指向前驱结点的指针域: data 是存放数据元素的数据域; Rlink 是指向后继结点的指针域。 下面给出的算法段是要把一个新结点 *Q 作为非空双向链表中的结点 *p 的前驱,插入到此双向链表中。不能正确完成要求的算法段是Q-LLink=P-LLink; P-LLink=Q;Q-Rlink=P; Q- P-LLink-Rlink=Q;Q-40.若某线性表中最常用的操作是取第 i 个元素和找

16、第 i 个元素的前趋元素, 则采用 ( )存储 方式最节省时间。顺序表 单链表 双链表 单循环链表 41串是任意有限个符号构成的集合 符号构成的序列字符构成的集合 字符构成的序列四、简答及应用1 请用类 C 语言描述顺序表,并予以解释说明。2 请用类 C 语言描述单链表的类型定义,并予以解释说明。3 请用类 C 语言描述双链表的类型定义,并予以解释说明。4 请用类 C 语言描述顺序串的类型定义。5 请用类 C 语言描述链串的类型定义。6. 叙述以下概念的区别:头指针变量、头指针、头结点、首结点,并说明头指针变量和头结点的 作用。7有哪些链表可仅由一个尾指针来惟一确定,即从尾指针出发能访问到链表

17、上任何一个结点。 8简述下列每对术语的区别:空串和空格串 ; 串变量和串常量 ; 主串和子串 ; 串变量的名字与串变量的值。9设有 A=” ” ?尽畭敬, ?潜摬, D=my,试计算下列运算的结果 (注:A+B 是 CONCA(T A,B)的 简写?尽尠的尠尠含有两个空格 ) 。(a)A+B(b)B+A(c)D+C+B(d)SUBSTR(B,3,2)(e)SUBSTR(C,1,0)(f)LENGTH(A)(g)LENGTH(D)(h)INDEX(B,D)(i)INDEX(C,d)(j)INSERT(D,2,C)(k)INSERT(B,1,A)(l)DELETE(B,2,2)(m)DELETE(

18、B,2,0)10.已知区尽砨穹 ?礪。试利用连接、求子串和置换等基本运算,将 S 转换为 T。五、算法设计1 设 A=( a,a,a, a )和 B=(b,b,. .,b) 是两个线性表 (假定所含数据元素均为 m1n1223 整数)。若 n=m且 a=b(i=1,. .,n), 则称 A=B;若 a=b(i=1,. .,j) 且 ab ( jn=m) , 则 j+1j+1iiii 称 AB。是编写一个比较 A和 B的算法,当 AB是分别输出 -1 ,0或者 1。2,试编写在无头结点的单链表上实现线性表基本运算 LOCATE(L,X)、INSERT(L,X ,i) 和 DELETE(L,i)

19、的算法,并和在带头结点的单链表上实现相的算法进行比较。3试编写在不带头结点的单链表上实现线性表基本运算 LENGTH(L)的算法。4假设有两个按数据元素值递增有序排列的线性表 A 和 B,均以单链表作存储结构。编写算 .法将 A 表和 B 表归并成一个按元素值递减有序(即非递增有序,允许值相同)排列的线性表 C,并要求利用原表 (即 A表和 B表的) 结点空间存放表 C。5设有线性表 A=(a,a,. .,a) 和 B=(b,b,. .,b). 试写合并 A、B 为线性表 C的算法, n1122m使得: (a1,b1,.,am,bm,bm?1,bn)当 m?n?; C=?(a1,b1,.,an,bn,an?1,.,am)当 m?n;假设 A、B 均 以单链表为存储结构 ( 并且 m、n 显示保存 ) 。要求 C也以单链表为存储结构并利用单链表 A、B的结点空间。6,设线性表存放在向量 Aarrsize 的前 elenum 分量中,且递增有序。试写一算法,将 X 插入到线性表的适当位置上,以保持线性表的有序性,并且分析算法的时间复杂性。7已知单链表 L中的结点是按值非递减有序排列的,试写一算法将值为 x 的结点插入表 L中,使得 L 仍然有序。8,试分别以

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

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