将两个双向循环链表合并成一个双向循环链表只要重点操作链表的头和尾结点即可,这样充分利用了链表动态分配的特点。一个是双向循环链表A的头结点和尾结点,另一个是双向循环链表B的首结点和尾结点,只要这4个结点连了起来整个也就连了起来。
#将两个双向循环链表合并成一个双向循环链表
#只要重点操作链表的头和尾结点即可,这样充分利用了链表动态分配的特点
#一个是双向循环链表A的头结点和尾结点,另一个是双向循环链表B的首结点和尾结点,只要这4个结点连了起来整个也就连了起来
def Comb(A,B):
ta=A.dhead.prior#指向A的尾结点
tb=B.dhead.prior#指向B的尾结点
#相当于执行了两次插入操作
#第一次
ta.next=B.dhead.next#A的尾结点之后连上B的首结点
B.dhead.next.prior=ta#A的尾结点之后连上B的首结点
#第二次
tb.next=A.dhead#B的尾结点之后连上A的头结点
A.dhead.prior=tb#B的尾结点当作A的尾结点
return A