输出二叉树的先序中序和后序遍历序列
Posted top啦它
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输出二叉树的先序中序和后序遍历序列相关的知识,希望对你有一定的参考价值。
Description
给定先序序列,按照该序列创建对应的二叉树,并输出其先序、中序和后序遍历序列。
Input
一行二叉树的按先序遍历序列,空指针用字符^占位
Output
输出三行,分别对应该二叉树的先序、中序和后序遍历序列
Sample Input
ABC^DEG^F^^
Sample Output
ABCDEGF
CBEGDFA
CGEFDBA
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct Tree
struct Tree *lChild,*rChild;
char data;
*BiTree,BiTNode;
BiTree CreatBiTree()
BiTree T;
char ch;
ch = getchar();
if(ch != '^')
T = (BiTree)malloc(sizeof(BiTNode));
T->data = ch;
T->lChild = CreatBiTree();
T->rChild = CreatBiTree();
else
T = NULL;
return T;
void xian(BiTree T)
if(T==NULL)
return ;
printf("%c",T->data);
xian(T->lChild);
xian(T->rChild);
void InOderTraverse(BiTree T)
if(T==NULL)
return ;
InOderTraverse(T->lChild);
printf("%c",T->data);
InOderTraverse(T->rChild);
void PostOderTraverse(BiTree T)
if(T==NULL)
return;
PostOderTraverse(T->lChild);
PostOderTraverse(T->rChild);
printf("%c",T->data);
int main(void)
BiTree T;
T = CreatBiTree();
xian(T);
printf("\\n");
InOderTraverse(T);
printf("\\n");
PostOderTraverse(T);
return 0;
以上是关于输出二叉树的先序中序和后序遍历序列的主要内容,如果未能解决你的问题,请参考以下文章
创建二叉树非递归完成对二叉树的先序和后序遍历并遍历输出每一层的结点数查找结点P 和结点Q的最近共同祖先