zoukankan      html  css  js  c++  java
  • 简单链表的实现

      这里只是一个实现简单功能的链表,意在说明链表的工作原理。举例语言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;
    }

  • 相关阅读:
    HDU2054_A == B ?【模拟题】【大数】【水的问题】
    hadoop结构出现后format变态
    jquery的clone办法bug修复
    Django学习笔记(三)—— 型号 model
    华夏的理财30天A和华夏财富宝货币哪个收益比较好?
    网贷平台公司 必看
    网贷平台 平安 陆金所
    网贷平台公司 各平台投资收费比较
    2012年网贷平台全国排名
    新进网贷的小散 感受
  • 原文地址:https://www.cnblogs.com/sunnystone85/p/1398429.html
Copyright © 2011-2022 走看看