#include <stdio.h>
#include<iostream>
typedef char TElemType;
typedef struct BiNode {
TElemType data;
struct BiNode* lchild, * rchild;
}BiTNode,*BiTree;
void CreatTree(BiTree *T) {
//printf("请输入先序遍历顺序");
TElemType data;
std::cin>>data;
if (data == '#')*T = NULL;
else {
*T = new BiTNode;
(*T)->data = data;
CreatTree(&(*T)->lchild);
CreatTree(&(*T)->rchild);
}
}
void fistTraverseTree(BiTree T) {
if (T == NULL)return;
printf("%c ", (T)->data);
fistTraverseTree((T)->lchild);
fistTraverseTree((T)->rchild);
}
void TraverseTree(BiTree T) {
if (T == NULL)return;
TraverseTree((T)->lchild);
printf("%c ", (T)->data);
TraverseTree((T)->rchild);
}
void lastTraverseTree(BiTree T) {
if (T == NULL)return;
lastTraverseTree((T)->lchild);
lastTraverseTree((T)->rchild);
printf("%c ", (T)->data);
}
int Depth(BiTree T) {
if (T == NULL)return 0;
int m = Depth(T->lchild);
int n = Depth(T->rchild);
return m > n ? m + 1 : n + 1;
}
int main() {
BiTree t;
printf("请输入先序遍历顺序\n");
CreatTree(&t);
fistTraverseTree(t);
printf("\n");
TraverseTree(t);
printf("\n");
lastTraverseTree(t);
return 0;
}
结果