该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
typedef char ElemType;
typedef struct BiTNode
{
ElemType data;
struct BiNode* lchild;
struct BiNode* rchild;
}BiTNode, * BiTree;
void CreateBiTree(BiTree* T);
void visit(ElemType c, int level);
void PreOderTraverse(BiTree T, int level);
int main(void)
{
BiTree T = NULL;
int level = 1;
CreateBiTree(&T);
PreOderTraverse(T, level);
return 0;
}
void CreateBiTree(BiTree* T)
{
ElemType c;
scanf_s("%c", &c, 1);
if (' ' == c)
{
*T = NULL;
}
else
{
*T = (BiTree )malloc(sizeof(BiTNode));
(*T)->data = c;
CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild);
}
}
//访问二叉树并进行具体操作
void visit(ElemType c, int level)
{
printf("第%d层的数据是%c", level, c);
}
//前序遍历二叉树
void PreOderTraverse(BiTree T, int level)
{
if (T)
{
visit(level, T->data);
PreOderTraverse(T->lchild, level + 1);
PreOderTraverse(T->rchild, level + 1);
}
}