本文已参与「新人创作礼」活动,一起开启掘金创作之路。 //----------双向链表的存储结构------------
typedef struct DuLNode
{
ElemType date;
struct DoLNode *prior;
struct DoLNode *next;
} DoLNode,*DoLinkList;
1)双向链表的循环
判空
L->next=L; // L->prior=L; // L->next=L->proir;
2)双向链表的插入
1)在p之后插入 保证1先于3
s->next=p->next;
s->prior=p;
p->next=p; 断(1)
s->next->prior=s; 断(2)
2)再p之前插入 保证2先于4
s->next=p;
s->prior=p->prior;
p->prior->next=s; 断(1)
p->prior=s; 断(2)
2)双向链表的删除 1,2没有先后顺序
p->prior->next=p->next;
p->next->prior=p->prior;