基於孩子兄弟表示法的樹的遍歷(遞迴版本)

2021-09-22 19:37:32 字數 954 閱讀 5435

**的注釋已經很清楚了,就不多做解釋了。 

#include #include using namespace std;

typedef struct streenode* pstreenode;

typedef int treedatatype;

struct streenode

};class ctree ;

void ctree::printnode(pstreenode pnode)

ctree::ctree()

ctree::ctree(treedatatype value)

ctree::~ctree()

void ctree::freememory(pstreenode pnode)

// 按照值插入,搜尋到的節點,如果沒有左孩子,先插入左孩子,否則插入右兄弟

void ctree::insertbydata(treedatatype parentvalue, treedatatype value) else

}void ctree::insertbrother(pstreenode pbrothernode, treedatatype value)

}// 搜尋插入的位置,按照傳入的值,比較函式是==操作符

pstreenode ctree::search(pstreenode pnode, treedatatype value) else

return search(pnode->pnextbrother, value); // 後搜尋右兄弟

}}void ctree::preorder(pstreenode pnode)

void ctree::inorder(pstreenode pnode)

void ctree::postorder(pstreenode pnode)

int main()

樹 孩子兄弟表示法的實現

樹狀圖是一種資料結構,它是由n n 1 個有限節點組成乙個具有層次關係的集合。把它叫做 樹 是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。它具有以下的特點 每個節點有零個或多個子節點 沒有父節點的節點稱為根節點 每乙個非根節點有且只有乙個父節點 除了根節點外,每個子節點可以分為多個不...

樹的雙親表示法,孩子表示法以及孩子兄弟表示法

目錄如下圖所示,這是一棵普通的樹,該如何儲存呢?通常,儲存具有普通樹結構資料的方法有 3 種 雙親表示法 孩子表示法 孩子兄弟表示法 圖1雙親表示法採用順序表 也就是陣列 儲存普通樹,其實現的核心思想是 順序儲存各個節點的同時,給各節點附加乙個記錄其父節點位置的變數。注意,根節點沒有父節點 父節點又...

樹的儲存結構 雙親表示法 孩子表示法 孩子兄弟法

實現 定義結構陣列存放樹的結點,每個結點包含兩個域 結點結構 結點型別定義 typedef struct ptnode ptnode 另外,用r儲存根結點的下標,用n表示結點個數 樹的雙親表示法示例 樹結構型別定義 define max tree size 100 typedef struct pt...