先序递归遍历:
void PreOrder(BiTree root)
{
if(root)
{
printf("%c",root->data);
PreOrder(root->Lchild);
PreOrder(root->Rchild);
}
}
中序递归遍历:
void InOrder(BiTree root)
{
if(root)
{
InOrder(root->Lchild);
printf("%c",root->data);
InOrder(root->Rchild);
}
}
后序递归遍历:
void PostOrder(BiTree root)
{
if(root)
{
PostOrder(root->Lchild);
PostOrder(root->Rchild);
printf("%c",root->data);
}
}
全部程序:
#include<stdio.h>
#include<stdlib.h>
typedef char DataType;
typedef struct Node
{
DataType data;
struct Node * Lchild;
struct Node * Rchild;
} BiTNode,*BiTree;
void CreateBiTree(BiTree *root)
{
char ch;
ch=getchar();
if(ch=='^')
*root=NULL;
else
{
*root=(BiTree)malloc(sizeof(BiTNode));
(*root)->data=ch;
CreateBiTree(&((*root)->Lchild));
CreateBiTree(&((*root)->Rchild));
}
}
/*void PreOrder(BiTree root)//先序遍历
{
if(root)
{
printf("%c",root->data);
PreOrder(root->Lchild);
PreOrder(root->Rchild);
}
}*/
/*void InOrder(BiTree root)//中序遍历
{
if(root)
{
InOrder(root->Lchild);
printf("%c",root->data);
InOrder(root->Rchild);
}
} */
void PostOrder(BiTree root)//后序遍历
{
if(root)
{
PostOrder(root->Lchild);
PostOrder(root->Rchild);
printf("%c",root->data);
}
}
int main(void)
{
BiTree root;
root=(BiTree)malloc(sizeof(BiTNode));
CreateBiTree(&root);
//PreOrder(root);
//InOrder(root);
PostOrder(root);
}