#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<stack>
using namespace std;
typedef struct TreeNode
{
char Data;
TreeNode* Left;
TreeNode* Right;
}*BinTree;
typedef struct _BinNode
{
BinTree p;
bool isFirst ;
}*BinNode;
void CreateBinTree(BinTree &p)
{
char tmp;
scanf("%c", &tmp);
if (tmp != '#')
{
p = (BinTree)malloc(sizeof(TreeNode));
p->Data = tmp;
CreateBinTree(p->Left);
CreateBinTree(p->Right);
}
else
{
p = NULL;
}
}
void PreOrderTraversal(BinTree T)
{
if (T)
{
printf("%c",T->Data);
PreOrderTraversal(T->Left);
PreOrderTraversal(T->Right);
}
}
void InOrderTraversal(BinTree T)
{
if (T)
{
InOrderTraversal(T->Left);
printf("%c", T->Data);
InOrderTraversal(T->Right);
}
}
void PostOrderTraversal(BinTree T)
{
if (T)
{
PostOrderTraversal(T->Left);
PostOrderTraversal(T->Right);
printf("%c", T->Data);
}
}
int main()
{
BinTree T = NULL;
printf("CreateBinTree\n");
CreateBinTree(T);
printf("\nPreOrderTraversal\n");
PreOrderTraversal(T);
printf("\nInOrderTraversal\n");
InOrderTraversal(T);
printf("\nInOrderTraversal\n");
printf("\nPostOrderTraversal\n");
PostOrderTraversal(T);
return 0;
}
二叉树递归版本的前序、中序、后序
最新推荐文章于 2022-08-22 15:37:08 发布