当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++基础入门教程

一般线性链表类的C++实现

    以下的C++类LinkList实现了线性链表的一般操作。可以直接在其他的程序中直接建立它的对象,其中线性表中的数据在此为整型,具体应用的时候可以适当的修改,并可以在此基础上继续封装特定的功能。

    头文件:LinkList.h

    typedef strUCt LNode {
    int data;
    struct LNode *next;
    }LNode, *pLinkList;

    class LinkList {
    private:
    pLinkList m_pList;
    int m_listLength;
    public:
    LinkList();
    ~LinkList();
    bool InitList ();
    bool DestroyList ();
    bool ClearList();
    bool IsEmpty ();
    int GetLength ();
    bool GetNode(int position, LNode** node);
    int LocateElem(int elem);
    bool SetNodeData(int position, int newData);
    bool GetNodeData(int position, int &data);
    bool InsertNode(int beforeWhich, int data);
    bool DeleteNode(int position);
    };

    Cpp文件:LinkList.cpp

    #include <iostream.h>
    #include "LinkList.h"

    LinkList::LinkList() {
    m_pList = NULL;
    m_listLength = 0;

    InitList();
    }

    LinkList::~LinkList() {
    if (!DestroyList()) {
      DestroyList();
    }
    }

    //初始化,分配一个头节点。
    bool LinkList::InitList() {
    if (!(m_pList = new LNode)) {
      return false;
    }
    m_pList->next = NULL;

    return true;
    }

    //销毁链表。
    bool LinkList::DestroyList() {
    if (!ClearList()) {
      return false;
    }

    delete m_pList;

    return true;
    }

    //判断链表是否为空。若为空,返回true,否则返回false。
    bool LinkList::IsEmpty() {
    if (m_pList->next == NULL) {
      return true;
    }
    return false;
    }

    //返回链表的中当前节点数。
    int LinkList::GetLength() {
    return m_listLength;
    }

    //将链表清空,释放当前所有节点。
    bool LinkList::ClearList() {
    if (m_pList == NULL) {
      return false;
    }

 

共3页 首页 上一页 1 2 3 下一页 尾页 跳转到
相关内容
赞助商链接