问题
问答题
设有带头结点的循环双链表表示的线性表L=(a1,a2,……,an-1,an)。设计在时
间和空间上都尽可能高效的算法,将L改造成L=(a1,a3,……,an,……a4,a2)。要求:
(1)给出算法的基本设计思想。
(2)根据设计思想,采用C或C++或JAVA语言描述算法,关键之处给出注释。
(3)说明你所设计算法的时间复杂度和空间复杂度。
答案
参考答案:[解答] (1)算法的基本设计思想如
[分析]: 所述。
(2)用C语言算法描述如下:
(3)说明算法的复杂性:上述算法的时间复杂度为O(n),算法的空间复杂度为O(1)。