自营店网站建设wordpress查看访问者ip
一、 带尾指针的循环链表的合并
算法步骤:
- p存表头结点——p=Ta->next;
 - Tb表头连接到Ta表尾——Ta->next=Tb->next->next;
 - 释放Tb表头结点——delate Tb->next;
 - 修改指针——Tb->next=p;
 
LinkList Connect(LinkList Ta,LinkList Tb){p=Ta->next;    //p存表头结点Ta->next=Tb->next->next;  //Tb表头连接Ta表尾delete Tb->next;   //释放Tb表头结点Tb->next=p;    //修改指针return Tb;
} 
二、 双向链表
结构定义如下:
typedef struct DuLNode{Elemtype data;struct DuLNode *prior,*next;
}DuLNode,*DuLinkList; 
| prior | data | next | 
双向链表结点结构
三、 双向循环链表
和单链的循环表类似,双向链表也可以有循环表
- 让头结点的前驱指针指向链表的最后一个结点
 - 让最后一个结点的后继指针指向头结点
 
四、 双向链表的删除
void ListDelete_DuL(DuLink &L,int i,ElemType &e){//删除带头结点的双向循环链表L的第i个元素,并用e带回if(!(p=GetElemP_DuL(L,i)))  return ERROR;e=p->data;p->piror->next=p->next;p->next->prior=p->prior;free(p);return OK;
} 
