从网上爬来的,加了自己的注释,万一忘了自己可以看一看。
#include <iostream>
using namespace std;
struct BiTNode{
char data;
struct BiTNode* lchild,* rchild; // 左右孩子
};
void CreatBiTree(BiTNode* &T){ // 先序递归创建二叉树
// 先按顺序驶入二叉树中节点的值(一个字符),空格字符代表空树
char ch;
for (int j = 0; j < 13; ++j) {
if((ch=getchar()) == '#') // getchar() 为逐个读入标准库函数
T = NULL;
else{
T = new BiTNode; // 产生新的子树
T->data = ch; // 由getchar()逐个读进来
CreatBiTree(T->lchild); // 递归创建左子树
CreatBiTree(T->rchild); // 递归创建右子树
}
}
}
void PreOrderTraverse(BiTNode* &T){ // 先序遍历二叉树
if(T){ // 当节点不为空时执行
cout << T->data;
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
else
cout << "";
}
void Inoder(BiTNode* &T)