C++資料結構與演算法: 單向鏈結串列(中)
在上一篇簡單說明如何建立單向鏈結的結構變數,而這篇將解釋如何建立單向鏈結的類別,此類別有以下的功能:
之前在UML之類別圖,我簡單解釋如何將標頭檔使用類別圖來表示,而這次類別dstringList不但含有結構變數strNode,而且還有指向結構變數的指標.
- 在串列的前面(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, curr和temp,要不然成員函數在對資料成員進行操作時,程式可能會產生無法預期的錯誤.
dstringList::dstringList()
{
head=NULL;
curr=NULL;
temp=NULL;
}
留言
張貼留言