C++資料結構與演算法: 單向鏈結串列(中)

上一篇簡單說明如何建立單向鏈結的結構變數,而這篇將解釋如何建立單向鏈結的類別,此類別有以下的功能:
  • 在串列的前面(prepend)增加資料
  • 在串列的後面(append)增加資料
  • 刪除串列的某一筆資料
  • 顯示串列所有資料

可視化類別的標頭檔


之前在UML之類別圖,我簡單解釋如何將標頭檔使用類別圖來表示,而這次類別dstringList不但含有結構變數strNode,而且還有指向結構變數的指標.
  • 若變數為指標,我們通常使用*或<<ptr>>來表示
  • 由於指標的定義為指向資料型別的變數,因此在UML圖呈現指標的含意,我們需使用Association的單向連結
  • 由於宣告多個指標變數nodeptr,而nodeptr與結構變數strNode有關,而在UML圖通常使用Containment來表示

class dstringList
{
private:
    typedef struct strNode
    {
       QString data;
       strNode *next;
    }*nodeptr;

    nodeptr head;
    nodeptr curr;
    nodeptr temp;

public:
    dstringList();
    void append(QString addData);
    void prepend(QString addData);
    void showList();
    void remove(QString delData);

};

圖一.dstringList的類別圖


建構子 dstringList()

建構子(constructor)是一個與類別名稱相同的特殊的資料成員,此成員只要產生類別的物件就會執行,所以主要用來初始化資料成員變數和配置所需的記憶體.因此,在此類別的建構子,我們需初始指標結構變數head, currtemp,要不然成員函數在對資料成員進行操作時,程式可能會產生無法預期的錯誤.


dstringList::dstringList()
{
    head=NULL;
    curr=NULL;
    temp=NULL;
}

留言

這個網誌中的熱門文章

VirtualBox教學:重設硬碟(.vdi)大小(上)

VirtualBox教學:重設硬碟(.vdi)大小(下)

VirtualBox教學: 新增Windows7虛擬電腦(下)