//二叉树的二叉链表节点结构定义
typedef char TElemType;
typedef struct BiTNode
{
TElemType data;
struct BiTNode *lchild, Rchild;
}BiTNode, *BiTree;
//前序遍历
void PreOrderTraverse(BiTree T)
{
if(T ==NULL)
{
return;
}
printf("%2c", T->data);
PreOrderTraverse(T->lchild); //先遍历左子树
PreOrderTraverse(T->Rchild); //最后遍历右子树
}
void InOrderTraverse(BiTree T)
{
if(T == NULL)
return;
InOrderTraverse(T->lchild);
printf("%2c", T->data);
InOrderTraverse(T->Rchild);
}
void PostOrderTraverse(BiTree T)
{
if(T== NULL)
return ;
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->Rchild);
printf("%2c", T->data);
}
int FindTreeDeep(BiTree T){
int deep=0;
if(BT){
int lchilddeep=FindTreeDeep(T->lchild);
int rchilddeep=FindTreeDeep(T->rchild);
deep=lchilddeep>=rchilddeep?lchilddeep+1:rchilddeep+1;
}
return deep;
}
void CreateBiTree(BiTree *T)
{
TElemType ch;
scanf("%c", &ch);
if(ch == '#')
{
*T= NULL;
}
else
{
*T = (BiTree)malloc(sizeof](BiTNode));
if(!*T)
exit(-1);
(*T)->data = ch;
CreateBiTree(T->lchild);
CreateBiTree(T->Rchild);
}
}
本文介绍了二叉树的基本结构定义,并详细讲解了前序、中序和后序遍历的实现方法。此外,还提供了计算二叉树深度的函数及创建二叉树的方法。
2351

被折叠的 条评论
为什么被折叠?



