#include <stdio.h>
#include <malloc.h>
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);}}
#include <malloc.h>
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);}}