数据结构第二章习题 下载本文

内容发布更新时间 : 2024/11/20 12:18:41星期一 下面是文章的全部内容请认真阅读。

(1) 将顺序表的所有元素逆置,要求算法空间复杂度为O(1)。 (2) 将带头结点的单链表的所以元素逆置,要求空间复杂度为O(1)。 2.设计一些有关删除元素的算法。

(1) 从顺序表中删除所有元素值为x的元素,要求空间复杂为O(1)。 (2) 从顺序表中删除元素值在x到y(x≤y)之间的所有元素,要求空间复杂度为O(1)。

(3) 从顺序表中删除重复的元素,并使剩余元素间的相对次序保持不变。 (4) 从单链表L中删除值为x的结点的直接前驱结点。 (5) 从带头结点的单链表L中删除一个最小值的结点。

(6) 从一个递增单链表中,删除值域重复的结点。并分析算法的时间复杂度。 (7) 从一个非有序单链表(允许出现值域重复的结点)中,删除值域重复的结点。

(8) 从一个带头结点递增有序表的单链表L中,删除表中data值在大于或等于min且小于或等于max之间的结点(若表中有这样的结点),同时释放被删结点的空间,这里min和max是两个给定的参数。

(9) 从一个带头结点非有序表的单链表L中,删除表中data值在大于或等于min且小于或等于max之间的结点(若表中有这样的结点),同时释放被删结点的空间,这里min和max是两个给定的参数。并分析算法的时间复杂度。 3.设计与集合运算有关的算法。

(1) 用顺序表表示集合,实现集合的交集、并集和差集的运算。 (2) 用单链表表示集合,实现集合的交集、并集和差集的运算。 4.综合问题的算法

(1) 设有一个顺序表L,其元素为整型数据,设计一个算法将L中所有小于0

的整数放在前半部分,大于0的整数放在后半部分。

(2) 设C={a1,b1,a2,b2,…,an, bn }为一线性表,采用带头结点的hc单链表存放,

设计一个就地算法,将其拆分为两个线性表,使得: A={ a1,a2,…, an},B={ b1, b2,…, bn} 作业:

1.设计一个算法判定单链表L(带头结点)是否是递增的。

2.有一个带头结点的单链表L,其ElemType类型为int,设计一个算法使其元素递增有序。