本文共 531 字,大约阅读时间需要 1 分钟。
其实循环链表和单链表的主要差异就在于循环的判断条件上,原来是判断p->next是否为空,现在则是p->next不等于头结点,则循环未结束。
所以插入删除什么的都是一样的
// 保存A 和B 的两个头结点p = rearA->next;q = rearB->next;// 连接两个链表 rearA -> next = rearB->next->next;rearB -> next = p;// 现在rearB指向了尾节点 把rearA指针置空并释放B原来的头结点rearA = NULL;free(q);
头指针的结构
非空的循环的带头结点的双向链表双向链表插入操作
// 首先搞定 要插入结点的指针域s->next = p->next;s->prior = p;// 接着搞定原始链表的指针域p->nest = s;s->next->prior = s;
双向链表删除操作
// 就两步 //1. 搞定前后结点指针域p->next->prior = p->prior;p->prior->next = p->next;//2. 释放当前结点free(p);
转载地址:http://pjzwi.baihongyu.com/