zoukankan      html  css  js  c++  java
  • 链表

    指针版

     1 // 双向链表
     2 struct Node 
     3 {
     4     int value; // data
     5     Node *prev, *next; // pointers
     6 };
     7 Node *head, *tail;
     8 
     9 void newlist()  // create an empty list
    10 {
    11     head = new Node();
    12     tail = new Node();
    13     head->next = tail;
    14     tail->prev = head;
    15 }
    16 
    17 void insert(Node *p, int value)  // insert data after p
    18 {
    19     q = new Node();
    20     q->value = value;
    21     p->next->prev = q; q->next = p->next;
    22     p->next = q; q->prev = p;
    23 }
    24 
    25 void remove(Node *p)  // remove p
    26 {
    27     p->prev->next = p->next;
    28     p->next->prev = p->prev;
    29     delete p;
    30 }
    31 
    32 void recycle() // release memory
    33 { 
    34     while (head != tail) 
    35         {
    36         head = head->next;
    37         delete head->prev;
    38     }
    39     delete tail;
    40 }    

    数组模拟

     1 // 数组模拟链表
     2 struct Node 
     3 {
     4     int value;
     5     int prev, next;
     6 } node[SIZE];
     7 int head, tail, tot;
     8 
     9 void newlist() 
    10 {
    11     tot = 2;
    12     head = 1, tail = 2;
    13     node[head].next = tail;
    14     node[tail].prev = head;
    15 }
    16 
    17 int insert(int p, int value) 
    18 {
    19     q = ++tot;
    20     node[q].value = value;
    21     node[node[p].next].prev = q;
    22     node[q].next = node[p].next;
    23     node[p].next = q; node[q].prev = p;
    24 }
    25 
    26 void remove(int p) 
    27 {
    28     node[node[p].prev].next = node[p].next;
    29     node[node[p].next].prev = node[p].prev;
    30 }
  • 相关阅读:
    jsp第六周作业
    jsp第四周作业
    jsp第一周周作业
    第一次软件测试课堂练习
    4.11jsp
    第六周作业
    第三周jsp作业
    3.10 jsp作业
    3.4软件测试
    JSP第六周作业
  • 原文地址:https://www.cnblogs.com/universeplayer/p/10658299.html
Copyright © 2011-2022 走看看