博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
双向循环链表
阅读量:6633 次
发布时间:2019-06-25

本文共 619 字,大约阅读时间需要 2 分钟。

双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。

先定义一个数据结构:

1 struct Date2 {3     int data;4     struct Date *prior;5     struct Date *next;6 }Note;

1、插入操作

在平p、q间插入一个节点s.

主要完成两次握手:p和s,q和s;

(1)p和s的握手

p->next=s;s->prior=p;

(2)s和q的握手

s->next=q;q->prior=s;

原来的链接关系为p->next=q; q->prior=p;现在只知道p节点,且q=p->next;

因此,以上两次握手为:

s->prior=p;       //s的前驱为pp->next->prior=s;//p的后继(即q)的前驱为s s->next=p->next;//s的后继为p的后继(即q)p->next=s;      //p的next为s

2、删除操作

删除p、q间的s节点

s->prior->next=s->next;s->next->prior=s->prior;

 

转载于:https://www.cnblogs.com/flash610/archive/2013/05/14/3078140.html

你可能感兴趣的文章