#include <iostream>
#include <string>
using namespace std;
typedef char ElemType;
typedef struct TNode{
string data = "";
TNode *lchild;
TNode *rchild;
}TreeNode, *BiTree;
void createBiTree(BiTree *T){
string ch;
cin >> ch;
if (ch == "#"){
*T = NULL;
return;
}
*T = new TreeNode;
(*T)->data = ch;
createBiTree(&(*T)->lchild);
createBiTree(&(*T)->rchild);
}
int isEmpty(BiTree T){
if (T == NULL)
return 1;
else
return 0;
}
void traverseBiTree(BiTree T){
if (isEmpty(T))
return;
cout << T->data << " ";
traverseBiTree(T->lchild);
traverseBiTree(T->rchild);
}
void inOrderBiTree(BiTree T){
if (isEmpty(T))
return;
inOrderBiTree(T->lchild);
cout << T->data << " ";
inOrderBiTree(T->rchild);
}
void PostOrderBiTree(BiTree T){
if (isEmpty(T))
return;
PostOrderBiTree(T->lchild);
PostOrderBiTree(T->rchild);
cout << T->data << " ";
}
int treeDeep(BiTree T){
int deep = 0;
if (isEmpty(T))
return deep;
int leftDeep = treeDeep(T->lchild);
int rightDeep = treeDeep(T->rchild);
deep = leftDeep > rightDeep ? leftDeep + 1 : rightDeep + 1;
return deep;
}
int main(){
BiTree T;
createBiTree(&T);
traverseBiTree(T);
cout << endl;
inOrderBiTree(T);
cout << endl;
PostOrderBiTree(T);
cout << endl;
cout << "樹深:" << treeDeep(T) << endl;
system("pause");
}
關(guān)于二叉樹的練習2019-11-13
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 二叉樹的遍歷、按層打印、序列化 這三個操作是不一樣的 二叉樹的遍歷常用遞歸的形式,那前序遍歷來說,先訪問根結(jié)點,在...
- 小學語文修改病句的方法 修改病句是小學語文考試中常見的題型,在修改病句之前,我們應(yīng)該清晰的了解有哪些病句現(xiàn)象,下面...
- Tree 樹是一種數(shù)據(jù)結(jié)構(gòu),由n(>=0)個有限節(jié)點Node組成的一個具有層次關(guān)系的集合。 樹的特點 每個子節(jié)點都...