• 简单链表的实现


      这里只是一个实现简单功能的链表,意在说明链表的工作原理。举例语言c++。

    简单的工作原理:链表对象,头节点对象,中间节点对象,尾节点对象。链表就是用来存储数据的,

    在进行数据存储的工作时候,用户看到的是链表这个对象,用户把要存储的对象放到链表中,之后的

    工作都是由各个节点来完成的。

      首先数据传到链表中,链表把数据交给头节点处理,头节点根据其指向的地址所处位置进行相应

    处理,比如在链表为空的时候,头节点指向的是尾节点。这个时候头节点把工作交给尾节点来处理,

    尾节点的处理方式就是重新开辟一块空间,把数据存在其中,并让这个空间指向尾节点。因为这条数

    据是在尾节点的前面。如果链表不是空,头节点指向的可能是中间节点。那么接下来的工作就交由

    中间节点来完成的。道理雷同。下面是代码简单说明。

    首先需要定义一个链表的类,这个类中要定义一个指向头节点的指针,还有插入数据的方法。

    //  链表对象

    class LinkedList

    {
    public:
        LinkedList();
        ~LinkedList() { delete myHead; }
        void Insert(Data * theData);  // 插入数据的方法
    private:
        HeadNode * myHead;  // 指向头节点的指针

    };

    // 链表对象的方法实现

    void LinkedList::Insert(Data *pData)
    {
        myHead->Insert(pData);

    }

     // 头节点对象

    class HeadNode : public Node
    {
    public:
        HeadNode();
        ~HeadNode() { delete myNext; }
        virtual Node * Insert(Data * theData);
        virtual void Show() { myNext->Show(); }
    private:
        Node * myNext;
    };

    // 头节点的两个方法实现

    HeadNode::HeadNode()

    {
        myNext = new TailNode;
    }

    Node * HeadNode::Insert(Data *theData)
    {
        myNext = myNext->Insert(theData);
        return this;
    }

  • 相关阅读:
    JVM发生OOM调优
    行云创新完成B轮融资,阿里云独家投资
    行云创新直播回顾:DDD“爱”上Dapr
    如何通过Dapr快速实现DDD?
    通过Dapr快速落地DDD,实现高并发
    上K8s,研发团队如何从容一点?
    直播来了!等你围观!聊聊服务网格那些事儿
    服务网格出现流量故障该咋办?SolarMesh发布重大功能
    mysql 授权问题
    Centos Mysql5.7 安装
  • 原文地址:https://www.cnblogs.com/sunnystone85/p/1398429.html
Copyright © 2020-2023  润新知