#include <stdio.h>
#include <stdlib.h>
typedef char ElemType;
typedef struct BitNode
{
ElemType data;
struct BitNode *lchild, *rchild;
}BitNode,*BitTree;
CreateBitTree(BitTree *T)
{
ElemType c;
scanf("%c",&c);
if(' '==c)
{
*T = NULL;
}
else
{
*T = (BitTree)malloc(sizeof(BitNode));
(*T)->data = c;
CreateBitTree(&(*T)->lchild);
CreateBitTree(&(*T)->rchild);
}
}
PreOrderTraverse(BitTree T,int level)
{
if(T)
{
PreOrderTraverse(T->lchild,level+1);
PreOrderTraverse(T->rchild,level+1);
printf("元素 %c 在第%d层\n",T->data,level);
}
}
MidOrderTraverse(BitTree T,int level)
{
if(T)
{
MidOrderTraverse(T->lchild,level+1);
printf("元素 %c 在第%d层\n",T->data,level);
MidOrderTraverse(T->rchild,level+1);
}
}
PostOrderTraverse(BitTree T,int level)
{
if(T)
{
PostOrderTraverse(T->lchild,level+1);
PostOrderTraverse(T->rchild,level+1);
printf("元素 %c 在第%d层\n",T->data,level);
}
}
int main()
{
int level = 1;
BitTree T;
CreateBitTree(&T);
//PreOrderTraverse(T,level);
//MidOrderTraverse(T,level);
PostOrderTraverse(T,level);
return 0;
}
二叉树的创建与遍历(递归)
最新推荐文章于 2022-08-02 20:05:46 发布