mi_tree測試資料:
mi_tree實現:
#include "stdafx.h"
#include using namespace std;
//二叉樹:遞迴實現的二叉樹。萬能的遞迴。
class mi_tree
element* pleft;
element* pright;
char data;
};public:
mi_tree()
//前序輸出二叉樹
void printnlr(element*);
//中序輸出二叉樹
void printlnr(element*);
//後序輸出二叉樹
void printlrn(element*);
//輸出葉結點數量
int getleafscount(element*);
//輸出樹的高度
int gettreeheight(element *);
//前序建立二叉樹
element* createtreewithnlr();
//樹的size
inline int gettreesize()
int size;
element* root;
};mi_tree::element* mi_tree::createtreewithnlr()
else
root = e;
return e;
}void mi_tree::printnlr(element* _e)
}void mi_tree::printlnr(element* _e)
}void mi_tree::printlrn(element *_e)
}int mi_tree::gettreeheight(element *_e)
int l = gettreeheight(_e->pleft);
int r = gettreeheight(_e->pright);
return l>r ? (l + 1) : (r + 1);
}int mi_tree::getleafscount(element *_e)
if (0 == _e->pleft && 0 == _e->pright)
int i = getleafscount(_e->pleft);
int j = getleafscount(_e->pright);
return i + j;
}
mi_list測試:
void testtree() {
cout << "mi_tree測試:請輸入擴充套件二叉樹,#為結束結點'。" << endl;
mi_tree tree;
tree.createtreewithnlr();
cout << "前序輸出二叉樹:" << endl;
tree.printnlr(tree.root);
cout << endl;
cout << "中序輸出二叉樹:" << endl;
tree.printlnr(tree.root);
cout << endl;
cout << "後序輸出二叉樹:" << endl;
tree.printlrn(tree.root);
cout << endl;
cout << "root節點值:" << tree.root->data << endl;
cout << "樹的size:" << tree.size << endl;
cout <
cout <
資料結構C 實現 二叉樹
adt btree btnode const t x btnode const t x,btnode l,btnode r 三個資料成員 t element btnode lchild,rchild 二叉樹類包含唯一的資料成員,它是指向乙個二叉鍊錶根結點的指標root 二叉樹類 先建立二叉樹結點類 ...
資料結構的C實現 二叉樹
二叉樹及其遞迴和非遞迴遍歷 include include define maxkey 100 define ok 1 typedef char elemtype typedef struct node node 二叉樹節點 遞迴先序遍歷 void preorder r node tree 遞迴中序...
資料結構 二叉樹的實現
描述 構造乙個二叉樹類,實現建立二叉樹和對二叉樹進行前序 中序 後序遍歷 輸入 擴充套件的前序序列.在一棵樹處理結束後,根據響應判斷是否處理下一棵樹 輸出 前序 中序 後序 樣例輸入 ab c yabc n樣例輸出 abcbac bcaabc cbacba include using namespa...