双链表

struct node{
  int Data;
  node *pre;
  node *next;
};
 
class linklist{
  private:
  node *head;
  node *end;
  public:
    linklist(int D,int d){
      head = new node;
      end = new node;
      head->pre = NULL;
      head->Data = D;
      head->next = end;
      end->pre = head;
      end->Data = d;
      end->next = NULL;
    }
 
    void print(){
      node *m = head;
      while(m->next != NULL){
        cout<<m->Data<<endl;
        m = m->next;
      }
      cout<<m->Data<<endl;
    }
 
    void Insert_from_head(int D){
      node *a = new node;
      a->next = head->next;
      a->Data = head->Data;
      a->pre = head;
      head->next = a;
      head->Data = D;
    }
    void Insert_from_end(int D){
      node *a = new node;
      end->pre->next = a;
      a->next = end;
      a->Data = end->Data;
      a->pre = end->pre;
      end->pre = a;
      end->Data = D;
    }
};
原文地址:https://www.cnblogs.com/candycloud/p/3341516.html