循环单链表和双链表基本操作

可能目前对我来说循环链表和双链表对我来说用的也不多,也有点小复杂,这里就简单总结一下

双链表

>>ADT:

typedef struct DulNode
{
    DataType data;
    struct DulNode *prior, *next;
}DulNode;

>>插入核心操作

s = (DulNode*)malloc(sizeof(DulNode));
s->prior = p->prior;
s->next = p;
p->prior->next = s;
p->prior = s;

>>删除核心操作

(p->prior)->next = p->next;
(p->next)->prior = p->prior;
free(p);

循环单链表

相比单链表,将终端节点的指针由空指针改为指向头节点即可

具体的像插入,删除等操作中把p!=NULL,p->next!=NULL,换成有关L的操作就好了,视具体情况而定

原文地址:https://www.cnblogs.com/wizarderror/p/10638580.html