您的位置:首页 > 其它

二叉树的递归遍历

2015-08-18 17:28 162 查看
#define   _CRT_SECURE_NO_WARNINGS
#include<iostream>

using namespace std;

typedef struct TreeNode
{
char Data;
TreeNode* Left;
TreeNode* Right;
}*BinTree;

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("\nPostOrderTraversal\n");
PostOrderTraversal(T);
return 0;
}




对应的二叉树结构为:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  二叉树