数据结构第2章基础习题-作业_第1页
数据结构第2章基础习题-作业_第2页
数据结构第2章基础习题-作业_第3页
数据结构第2章基础习题-作业_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章 习题一 判断题1线性表的逻辑顺序与存储顺序总是一致的。2顺序存储的线性表可以按序号随机存取。3顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。 4线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此是属于同一数据对象。5在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。6在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。7线性表的链式存储结构优于顺序存储结构。8在线性表的顺序存储结构中,插入和删除时,移动元素的个数与该元素的位置有关。9线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。10在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。11. 线性表中每个元素都有一个直接前驱和一个直接后继。()12. 线性表中所有元素的排列顺序必须由小到大或由小到小。()13. 静态链表的存储空间在可以改变大小。()14. 静态链表既有顺序存储结构的优点,又有动态链表的优点。所以它存取表中第i个元素的时间与i无关。()15. 静态链表中能容纳元素个数的最大数在定义时就确定了,以后不能增加。()16. 静态链表与动态链表的插入、删除操作类似,不需要做元素的移动。()17. 线性表的顺序存储结构优于链式结构。()18. 在循环单链表中,从表中任一结点出发都可以通过前后的移动操作扫描整个循环链表。()19. 在单链表中,可以从头结点开始查找任何一个结点。()20. 在双链表中,可以从任何一结点开始沿同一方向查找到任何其他结点。()二 单选题 (请从下列A,B,C,D选项中选择一项)1线性表是( ) 。(A) 一个有限序列,可以为空; (B) 一个有限序列,不能为空; (C) 一个无限序列,可以为空; (D) 一个无序序列,不能为空。 2对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。插入一个元素时平均要移动表中的( )个元素。 (A) n/2 (B) n+1/2 (C) (n -1)/2 (D) n 3线性表采用链式存储时,其地址( ) 。(A) 必须是连续的; (B) 部分地址必须是连续的; (C) 一定是不连续的; (D) 连续与否均可以。 4用链表表示线性表的优点是 ( )。(A)便于随机存取(B)花费的存储空间较顺序存储少(C)便于插入和删除(D)数据元素的物理顺序与逻辑顺序相同5 某链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用( )存储方式最节省运算时间。(A)单链表(B)双链表(C)单循环链表(D)带头结点的双循环链表6 循环链表的主要优点是( ) 。(A)不在需要头指针了(B)已知某个结点的位置后,能够容易找到他的直接前趋(C)在进行插入、删除运算时,能更好的保证链表不断开(D)从表中的任意结点出发都能扫描到整个链表7 下面关于线性表的叙述错误的是( )。(A) 线性表采用顺序存储,必须占用一片地址连续的单元;(B) 线性表采用顺序存储,便于进行插入和删除操作;(C) 线性表采用链式存储,不必占用一片地址连续的单元;(D) 线性表采用链式存储,不便于进行插入和删除操作;8 单链表中,增加一个头结点的目的是为了()。(A) 使单链表至少有一个结点 (B)标识表结点中首结点的位置(C)方便运算的实现 (D) 说明单链表是线性表的链式存储9 若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。(A) 单链表 (B) 仅有头指针的单循环链表 (C) 双链表 (D) 仅有尾指针的单循环链表10 若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用( )存储方式最节省运算时间( )。(A) 单链表 (B) 顺序表 (C) 双链表 (D) 单循环链表11 对一个具有n个元素的线性表,建立其单链表的时间复杂度为( )(A)O(n) (B) O(1) (C)O(n2) (D)O(log2n)三 填空题1带头结点的单链表H为空的条件是_H-next=null_。1 非空单循环链表L中*p是尾结点的条件是_p-next=L_。3在一个单链表中p所指结点之后插入一个由指针f所指结点,应执行f-next=p-next_;和p-next=_f_的操作。4在一个单链表中p所指结点之前插入一个由指针s所指结点,可执行以下操作:s-next=p-next_;p-next=s;t=p-data;p-data= _ s-data _;s-data= _ t _;5在顺序表中做插入操作时首先检查_是否满_。6在一个单链表中删除p结点时,应执行下列操作: q=p-next; p-data=p-next-data;p-next=_q-next_delete q;7在双向链表中,每个结点含有两个指针域,一个指向_结点,另一个指向_结点。四 算法设计题1 设线性表存放在向量Aarrsize的前elenum个分量中,且递增有序。试写一算法,将x 插入到线性表的适当位置上,以保持线性表的有序性。并且分析算法的时间复杂度。2 已知一顺序表A,其元素值非递减有序排列,编写一个函数删除顺序表中多余的值相同的元素。3 编写一个函数,从一给定的顺序表A中删除值在xy(x=y)之间的所有元素,要求以较高的效率来实现。提示:可以先将顺序表中所有值在xy之间的元素置成一个特殊的值,并不立即删除它们,然后从最后向前依次扫描,发现具有特殊值的元素后,移动其后面的元素将其删除掉。4 线性表中有n个元素,每个元素是一个字符,现存于向量Rn中,试写一算法,使R中的字符按字母字符、数字字符和其它字符的顺序排列。要求利用原来的存储空间,元素移动次数最小。5 线性表用顺序存储,设计一个算法,用尽可能少的辅助存储空间将顺序表中前m个元素和后n个元素进行整体互换。即将线性表(a1, a2, , am, b1, b2, , bn) 改变为:(b1, b2, , bn , a1, a2, , am)。6 已知带头结点的单链表L中的结点是按整数值递增排列的,试写一算法,将值为x 的结点插入到表L中,使得L仍然有序。并且分析算法的时间复杂度。7 假设有两个已排序的单链表A和B,编写一个函数将他们合并成一个链表C而不改变其排序性。8 假设长度大于1的循环单链表中,既无头结点也无头指针,p为指向该链表中某一结点的指针,编写一个函数删除该结点的前趋结点。9 已知两个单链表A和B分别表示两个集合,其元素递增排列,编写一个函数求出A和B的交集C,要求C同样以元素递增的单链表形式存储。10 设有一个双向链表,每个结点中除有prior、data和next域外,还有一个访问频度freq域,在链表被起用之前,该域其值初始化为零。每当在链表进行一次Locata(L,x)运算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论