typedef struct Tree
{
struct Tree* LeftTree;
struct Tree* RightTree;
char szVal;
}TREE,*PTREE;
char* CreateStr = "ABC##DE##F##G#H##";
void CreateTree(PTREE& pTree)
{
char ch;
ch = *(CreateStr++);
if(ch == '#')
{
pTree = NULL;
}
else
{
pTree = new TREE;
pTree->szVal = ch;
CreateTree(pTree->LeftTree);
CreateTree(pTree->RightTree);
}
}
char strPreorder[1024];
int nPreordnIndex = 0;
void PreorderTraversal(PTREE pTree)
{
if(pTree == NULL)
{
strPreorder[nPreordnIndex++]='#';
}
else
{
strPreorder[nPreordnIndex++] = pTree->szVal;
PreorderTraversal(pTree->LeftTree);
PreorderTraversal(pTree->RightTree);
}
}
char strMiddleer[1024];
int nMiddleerIndex = 0;
void MiddleTraversal(PTREE pTree)
{
if(pTree == NULL)
{
strMiddleer[nMiddleerIndex++]='#';
}
else
{
MiddleTraversal(pTree->LeftTree);
strMiddleer[nMiddleerIndex++] = pTree->szVal;
MiddleTraversal(pTree->RightTree);
}
}
char strPostOrder[1024];
int nPostOrderIndex = 0;
void PostOrderTraverse(PTREE pTree)
{
if(pTree == NULL)
{
strPostOrder[nPostOrderIndex++]='#';
}
else
{
PostOrderTraverse(pTree->LeftTree);
PostOrderTraverse(pTree->RightTree);
strPostOrder[nPostOrderIndex++] = pTree->szVal;;
}
}
int main()
{
PTREE pTree;
printf("把 %s 这组数进行创建n",CreateStr);
CreateTree(pTree);
PreorderTraversal(pTree);
printf("先序遍历:%sn",strPreorder);
MiddleTraversal(pTree);
printf("中序遍历:%sn",strMiddleer);
PostOrderTraverse(pTree);
printf("后序遍历:%sn",strPostOrder);
return 0;
}



