《数据结构》吕云翔编著第2章线性表习题解答
更新时间:2023-12-05 15:19:01 阅读量: 教育文库 文档下载
数据结构第二章习题解答
一、单选题
1.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移 (B) 个元素。 A、n-i B、n-i+1 C、n-i-1 D、i
2.在一个长度为n的顺序存储线性表中,删除第i个元素(1≤i≤n+1)时,需要从前向后依次前移 (A)个元素。
A、n-i B、n-i+1 C、n-i-1 D、i
3. 在一个长度为n的线性表中顺序查找值为x的元素时,在等概率情况下,查找成功时 的平均查找长度(即需要比较的元素个数)为( C )。 A. n B. n/2 C. (n+1)/2 D. (n-1)/2
4.在一个长度为 n的线性表中,删除值为x的元素时需要比较元素和移动元素的总次 数为(C )。 A. (n+1)/2
B. n/2 C. n
D. n+1
5. 在一个顺序表的表尾插入一个元素的时间复杂度为(B )。 A. O(n) B. O(1) C. O(n*n) D. O(log2n)
6.若一个结点的引用为p,它的前驱结点的引用为q,则删除p的后继结点的操作为(B )。 A. p=p.next.next B. p.next=p.next.next C. q.next=p.next D. q.next=q.next.next
8. 假定一个多项式中x的最高次幂为n,则在保存所有系数项的线性表表示中,其线性 表长度为(A )。 A. n+1 B. n
C. n-1 D. n+2
二、填空题
1.对于当前长度为n的线性表,共包含有________多个插入元素的位置,共包含有 ________多个删除元素的位置。(答案n+1 n)
2.若经常需要对线性表进行表尾插入和删除运算,则最好采用________存储结构,若经 常需要对线性表进行表头插入和删除运算,则最好采用________存储结构。( 答案:顺序 链式)
3.由n个元素生成一个顺序表,若每次都调用插入算法把一个元素插入到表头,则整个 算法的时间复杂度为________,若每次都调用插入算法把一个元素插入到表尾,则整个算法 的时间复杂度为________。 (答案: O(n) O(n))
4.由n个元素生成一个单链表,若每次都调用插入算法把一个元素插入到表头,则整个 算法的时间复杂度为________,若每次都调用插入算法把一个元素插入到表尾,则整个算法 的时间复杂度为________。 (答案: O(1) O(1))
5. 对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复杂度为________, 在表尾插入元素的时间复杂度为________。 (答案:O(n),O(1))
6. 对于一个单链接存储的线性表,在表头插入结点的时间复杂度为________,在表尾插 入结点的时间复杂度为________。 (答案:O(1),O(1))
7. 从一个顺序表和单链表中访问任一个给定位置序号的元素(结点)的时间复杂度分别 为________和_______。(答案:O(1),O(n)) 三、 算法设计题
1. 修改从顺序存储的集合中删除元素的算法,要求当删除一个元素后检查数组空间的大小,若空间利用率小于40%同时数组长度大于maxSize时则释放数组的一半存储空间。 public void remove(int i) throws Exception{
}
if(i<0||i>curLen-1)
throw new Exception(\删除位置非法\
for(int j=i;i listItem[j]=listItem[j+1]; curLen--; if((double)curLen/maxSize<0.4 && curLen>maxSize) { } maxSize=maxSize/2; listItem=new Object[maxSize]; System.out.println(maxSize); 2. 编写顺序存储集合类sequenceSet中的构造方法,它包含有一维数组参数Object[] a,该方法中给setArray数组分配的长度是a数组长度的1.5倍,并且根据a数组中的所有不同的元素值建立一个集合。 public sequenceSet(Object[] a) { length=0; setArray=new Object[(int)(a.length*1.5)]; for(int i=0; i for(j=0; j if(setArray[j].equals(a[i])) break; if(j==length) { setArray[length]=a[i]; length++; } } } 3. 编写一个静态成员方法,返回一个顺序存储的集合set中所有元素的最大值,假定元素类型为Double。 public static Object maxValue(Set set) { sequenceSet dset=(sequenceSet)set; if(dset.size()==0) return null; Double x=(Double)dset.value(1); for(int i=1; i Double y=(Double)dset.value(i+1); if(y.compareTo(x)>0) x=y; } return x; } 4. 编写顺序存储集合类sequenceSet中的复制构造方法,它包含有一个参数为Set set,实现把set所指向的顺序集合的内容复制到当前集合中的功能。 public sequenceSet(Set set) { sequenceSet dset=(sequenceSet)set; setArray=new Object[dset.setArray.length]; for(int i=0; i 5. 编写一个静态成员方法,实现两个顺序存储集合的差运算,并返回所求得的差集。 public static Set difference(Set set1, Set set2) { sequenceSet dset2=(sequenceSet)set2; sequenceSet1 dset3=new sequenceSet(set1); for(int i=0; i 6. 编写一个静态成员方法,实现两个链接存储集合的差运算,并返回所求得的差集。 public static Set difference1(Set set1, Set set2) { linkSet dset1=(linkSet)set1; linkSet dset2=(linkSet)set2; linkSet dset3=new linkSet();
正在阅读:
关于加强中小企业现金流管理的思考08-19
赡养父母有标准吗,具体标准是什么 -03-15
各级渠道纵横断面设计 - 图文01-22
最新部编版小学六年级语文小升初毕业考试试题(共6套,含参考答案)04-27
电力电缆故障测距仪的研究与应用06-06
书籍是人类进步的阶梯作文500字06-23
开展学科竞赛促进大学生创新实践能力培养06-10
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 云翔
- 数据结构
- 线性
- 编著
- 习题
- 解答
- 名言警句
- 白盒测试实验一
- 如何做好一年级语文课堂教学-2019年教育文档
- 华能威海电厂#4机组(300MW)电除尘器改造-精选文档
- 空气压缩机油性能要求
- 2019版中考历史总复习主题十六工业革命和工人运动的兴起(2年模拟题组)模拟试题
- 人教版小学六年级下学期语文第四单元测试卷(附答案)
- 2018运维工程师个人年终工作总结与2018运维工程师年终个人工作总结汇编
- 小初高学习2018届高考生物大一轮复习 阶段检测(四)第5-7章(必修2)
- 市政道路及广场公园园林绿化工程施工施工组织设计(doc 63页)(优质推荐版)
- 我市农民专业合作组织发展状况的调查报告-精品文案范文
- 北京电大数据库复习题
- 巧设问题培养学生思维能力
- 浙江省2016年上半年安全工程师安全生产法:安全生产条件考试试题
- 2011年云南省玉溪市新平县杨武中学初一新生数学试卷含参考答案
- 温州医科大学 流行病学考试(预防)第4套
- 高考作文素材 - 最新经典温馨留言
- 辽宁省抚顺市第一中学高中地理 2.1.2冷热不均引起大气运动教案 新人教版必修1
- 小学数学四年级下册《三角形的内角和》教学实录及反思
- 大班主题活动教案:我是中国人教案