zoukankan      html  css  js  c++  java
  • C++实现双向链表

    #include<iostream>
    using namespace std;
    class DblList;
    
    class DblListNode
    {
    
        friend class DblList;
    public:
        int data;
        DblListNode *llink,*rlink;
    };
    
    class DblList
    {
    public:
        DblList()
        {
            first=new DblListNode();
            first->llink=first->rlink=first;
        }
        void Insert(DblListNode*,DblListNode*);
        void Delete(DblListNode*);
    //private:
    public:
        DblListNode *first;
    };
    
    void DblList::Insert(DblListNode *p,DblListNode *x)//p表示新插入的节点插入x节点的右边
    {
        p->llink=x;
        p->rlink=x->rlink;
        x->rlink->llink=p;
        x->rlink=p;
    }
    void DblList::Delete(DblListNode *x)
    {
    
        if(x==first)
            cout<<"cant"<<endl;
        else{
            x->llink->rlink=x->rlink;
            x->rlink->llink=x->llink;
            delete x;
        }
    }
    
    int main()
    {
        cout<<"ok"<<endl;
        DblList intList;
        DblListNode *node1,*node2,*node3,*node4,*node5;
        node1=new DblListNode();//创建的时候用new,那么就可以用deldete删除,否则报错
         node2=new DblListNode();
          node3=new DblListNode();
           node4=new DblListNode();
            node5=new DblListNode();
        node1->data=10;
        node2->data=20;
        node3->data=30;
        node4->data=40;
        node5->data=50;
        intList.Insert(node1,intList.first);//指针所以加&
        intList.Insert(node2,intList.first);
        intList.Insert(node3,intList.first);
        intList.Insert(node4,intList.first);
        intList.Insert(node5,intList.first);
        cout<<intList.first->rlink->data<<endl;
        cout<<intList.first->rlink->rlink->data<<endl;
        cout<<intList.first->rlink->rlink->rlink->data<<endl;
    
        intList.Delete(node4);
         cout<<intList.first->rlink->data<<endl;
        cout<<intList.first->rlink->rlink->data<<endl;
        cout<<intList.first->rlink->rlink->rlink->data<<endl;
        return 0;
    }
  • 相关阅读:
    DeepWalk论文精读:(2)核心算法
    DeepWalk论文精读:(3)实验
    DeepWalk论文精读:(1)解决问题&相关工作
    面向对象第四单元(UML)总结
    面向对象第三单元(地铁)总结
    面向对象第二单元(电梯)总结
    面向对象第一单元(多项式求导)总结
    我的2017年总结
    【转】胡侃学习(理论)计算机
    当当图书又打折?
  • 原文地址:https://www.cnblogs.com/libin123/p/10420121.html
Copyright © 2011-2022 走看看