#include<stdio.h>
#include<stdlib.h>
typedef struct BiTNode
{
char data
;
struct BiTNode
*lchild
, *rchild
;
}Bitree
;
Bitree
*CreateBtree_DLR(Bitree
* root
);
void PreOrder(Bitree
* T
);
void InOrder(Bitree
*T
);
void PostOrder(Bitree
*T
);
Bitree
* CreateBtree_DLR(Bitree
* root
)
{
char ch
;
scanf("%c", &ch
);
if (ch
== '@')
root
= NULL;
else
{
root
= (Bitree
*)malloc(sizeof(Bitree
));
root
->data
= ch
;
root
->lchild
= CreateBtree_DLR(root
->lchild
);
root
->rchild
= CreateBtree_DLR(root
->rchild
);
}
return (root
);
}
void PreOrder(Bitree
*T
)
{
if (T
!= NULL)
{
printf("%c", T
->data
);
PreOrder(T
->lchild
);
PreOrder(T
->rchild
);
}
}
void InOrder(Bitree
*T
)
{
if (T
!= NULL)
{
InOrder(T
->lchild
);
printf("%c", T
->data
);
InOrder(T
->rchild
);
}
}
void PostOrder(Bitree
*T
)
{
if (T
!= NULL)
{
PostOrder(T
->lchild
);
PostOrder(T
->rchild
);
printf("%c",T
->data
);
}
}
int main()
{
Bitree
*T
= NULL;
printf("输入二叉树的先序遍历结点,建立二叉树。(子树为空时输入@)\n");
T
= CreateBtree_DLR(T
);
printf("\n先序遍历结果:\n");
PreOrder(T
);
printf("\n中序遍历结果:\n");
InOrder(T
);
printf("\n后序遍历的结果:\n");
PostOrder(T
);
return 0;
}
转载请注明原文地址: https://yun.8miu.com/read-139682.html