1.双向链表的定义
typedef struct DulNode
{
ELemType data;
struct DulNode * prior; //直接前驱指针
struct DulNode * next; //直接后继指针
} DulNode, * DuLinkList;
2.插入操作
假设将存储元素e的结点s插入到结点p和p->next之间
s->prior = p; //把p赋值给s的前驱
s->next = p->next; //把p->next赋值给s的后继
p->next->prior = s; //把s赋值给p->next的前驱
p->next = s; //把s赋值给p的后继
示意图:
3.删除操作
p->prior->next = p->next; //把p->next赋值给p->prior的后继
p->next->prior = p->prior; //把p->prior赋值给p->next的前驱
delete p; //释放结点
示意图: