简单链表的实现

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

posted @ 2009-02-26 01:39  刘宇石  阅读(439)  评论(0编辑  收藏  举报