二叉树的遍历
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
int CreateBiTree(BiTree &T)
{
char ch;
scanf("c",&ch);
if(ch=='#') T=NULL;
else
{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode))));
return -1;
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return 1;
}
int Preorder(BiTree T,int(*Element)(char e))
{
if(T)
{
Element(T->data);
Preorder(T->lchild,Element);
Preorder(T->rchild,Element);
}
else
{
printf(" ");
}
return 0;
}
int Inorder(BiTree T,int(*Element)(char e))
{
if(T)
{
Inorder(T->lchild,Element);
Element(T->data);
Inorder(T->rchild,Element);
}
else
{
printf(" ");
}
return 0;
}
int Postorder(BiTree T,int(*Element)(char e))
{
if(T)
{
Postorder(T->lchild,Element);
Postorder(T->rchild,Element);
Element(T->data);
}
else
{
printf(" ");
}
return 0;
}