</pre><pre name="code" class="cpp">#include <stdio.h>
#include <malloc.h>
typedef struct BTNode
{
char data;
struct BTNode *lchild;
struct BTNode *rchild;
}BTNode;
void createTree(BTNode* *T)
{
char ch = getchar();
if(ch=='#')
{
*T=NULL;
return;
}
(*T) = (BTNode*)malloc(sizeof(BTNode));
(*T)->data = ch;
createTree(&(*T)->lchild);
createTree(&(*T)->rchild);
}
void preOrder(BTNode *T)//先序遍历
{
if(T==NULL) return;
printf("%c\t", T->data);
if(T->lchild!=NULL)
preOrder(T->lchild);
if(T->rchild != NULL)
preOrder(T->rchild);
}
void inOrder(BTNode *T)//中序遍历
{
if(T==NULL) return;
if(T->lchild!=NULL)
inOrder(T->lchild);
printf("%c\t", T->data);
if(T->rchild != NULL)
inOrder(T->rchild);
}
void postOrder(BTNode *T)//后序遍历
{
if(T==NULL) return;
if(T->lchild!=NULL)
postOrder(T->lchild);
if(T->rchild != NULL)
postOrder(T->rchild);
printf("%c\t", T->data);
}
int main(int argc, char const *argv[])
{
BTNode *T;
createTree(&T);
puts("PreOrder visit:");
preOrder(T);
putchar('\n');
puts("inOrder visit:");
inOrder(T);
putchar('\n');
puts("PostOrder visit:");
postOrder(T);
putchar('\n');
return 0;
}
/*运行结果:
ABD###C##
PreOrder visit:
A B D C
inOrder visit:
D B A C
PostOrder visit:
D B C A
请按任意键继续. . .*/
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【数据结构】C语言实现二叉树
【数据结构】第五章——树与二叉树详细介绍如何通过C语言实现二叉树……
数据结构 C语言 二叉树 BST -
二叉树遍历-递归与非递归遍历
二叉树的遍历原则先序遍历:①访问当前结点,②遍历左子树,③遍历右子树中序遍历:①遍历左子树,②访问当前结点,③
数据结构 二叉树 结点 子树 非递归