数据结构05

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章线性表和串习题

5.1若将顺序表中记录其长度的分量listlen改为指向最后一个元素的位置last,在实现各基本运算时需要做那些修改?

5.2试用顺序表表示较多位数的大整数,以便于这类数据的存储。请选择合适的存放次序,并分别写出这类大数的比较、加、减、乘、除等运算,并分析算法的时间性能。

5.3试用顺序表表示集合,并确定合适的约定,在此基础上编写算法以实现集合的交、并、差等运算,并分析各算法的时间性能。

5.4假设顺序表L中的元素递增有序,设计算法在顺序表中插入元素x,要求插入后仍保持其递增有序特性,并要求时间尽可能少。

5.5假设顺序表L中的元素递增有序,设计算法在顺序表中插入元素x,并要求在插入后也没有相同的元素,即若表中存在相同的元素,则不执行插入操作。

5.6设计算法以删除顺序表中重复的元素,并分析算法的时间性能。

5.7假设顺序表L中的元素按从小到大的次序排列,设计算法以删除表中重复的元素, 并要求时间尽可能少。要求:

(1)对顺序表(1,1,2,2,2,3,4,5,5,5,6,6,7,7,8,8,8,9)模拟执行本算法,并统计移动元素的次数。

(2)分析算法的时间性能。

5.8若递增有序顺序表A、B分别表示一个集合,设计算法求解A=A B,并分析其时间性能。

5.9递增有序顺序表A、B分别表示一个集合,设计算法求解A=A-B,并分析其时间性能。

5.10假设带头结点的单链表是递增有序的,设计算法在其中插入一个值为x的结点,并保持其递增特性。

5.11设计算法以删除链表中值为x的元素结点。

5.12设计算法将两个带头结点的单循环链表A,B首尾相接为一个单循环链表A。

5.13假设链表A、B分别表示一个集合,试设计算法以判断集合A是否是集合B的子集,若是,则返回1,否则返回0,并分析算法的时间复杂度。

5.14假设递增有序的带头结点的链表A、B分别表示一个集合,试设计算法以判断集合A是否是集合B的子集,若是,则返回1,否则返回0,并分析算法的时间复杂度。

5.15假设链表A、B分别表示一个集合,设计算法以求解C= A∩B,并分析算法的时间复杂度。

5.16假设递增有序的带头结点的链表A、B分别表示一个集合,设计算法以求解C= A ∩B,并分析算法的时间复杂度。

5.17假设递增有序的带头结点的链表A、B分别表示一个集合,设计算法以求解A= A ∩B,并分析算法的时间复杂度。

5.18假设递增有序的带头结点的单循环链表A、B分别表示两个集合,设计算法以求解A= A∪B,并分析算法的时间复杂度。

5.19假设链表A、B分别表示两个集合,设计算法以求解C= A∪B,并分析算法的时间复杂度。

5.20设计算法将两个递增有序的带头结点的单链表A、B合并为一个递增有序的带头结点的单链表,并要求算法的时间复杂度为两个表长之和的数量级。

5.21设计算法将链表L就地逆置,即利用原表各结点的空间实现逆置。

5.22设计算法将两个递增有序的带头结点的单链表A、B合并为一个递减有序的带头结点的单链表,并要求算法的时间复杂度为两个表长之和的数量级。

5.23设计算法以判断带头结点的双循环链表L是否是对称的,即从前往后和从后往前的输出序列是相同的。若对称,返回1,否则返回0。

5.24设计算法将带头结点的双循环链表L就地逆置,即利用原表各结点的空间实现逆置。

5.25设计算法以判断链串S1是否是链串S2的子串,若是子串,返回1,否则返回0。

5.26设计算法以比较链串S1和链串S2的大小,若S1

5.27设计算法以判断两个顺序串是否相等,若相等,返回1,否则返回0。

相关文档
最新文档