zoukankan      html  css  js  c++  java
  • 双向循环链表

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

    先定义一个数据结构:

    1 struct Date
    2 {
    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的前驱为p
    p->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;
  • 相关阅读:
    SQL Server
    SQL Server
    SQL Server
    SQL Server
    SQL Server
    SQL Server
    SQL Server
    ssh保持连接不断开
    如何查看linux是否打开虚拟化
    dd命令详解
  • 原文地址:https://www.cnblogs.com/flash610/p/3078140.html
Copyright © 2011-2022 走看看