初始化
//初始化
typedef struct DNode{
int data;
struct DNode *prior,*next;
}DNode,*DinkList;
bool InitList(LinkList &L)
{
L=(DNode *)malloc(sizeof(DNode));
if(L==NULL) return false;
L->prior=NULL;
L->next=NULL;
return true;
}
双链表的尾插法
//在p后插入节点s ,其他删除操作都可转化为尾插法
bool InsertNextDNode(DNode *p,DNode *s)
{
if(p==NULL||s==NULL) return false;
s->next=p->next;
if(p->next!=NULL) p->next->prior=s;
p->next=s;
s->prior=p;
return true;
}
删除
//删除p的后继节点
bool DeleteDNode(DNode *p){
if(p==NULL) return false;
DNode *q=p->next;//找到p的后继节点
if(q==NULL) return false;
p->next=q->next;
if(q->next!=NULL) q->next->prior=p;
free(q);
return true;
}
1787

被折叠的 条评论
为什么被折叠?



