# include <stdio.h>
# include <stdlib.h>
struct treenode
{
char ch;
treenode *left,*right; /*左指针和右指针*/
};
typedef treenode *treelink;
int main()
{
treelink createtree(treelink);
void preorder(treelink);
void medorder(treelink);
void postorder(treelink);
treelink T=NULL;
T=createtree(T);
printf("先序遍历结果为:\n");
preorder(T);
putchar(10);
printf("中序遍历结果为:\n");
medorder(T);
putchar(10);
printf("后序遍历结果为:\n");
postorder(T);
putchar(10);
system("pause");
return 0;
}
treelink createtree(treelink T) /*树的递归创建*/
{
char temp;
scanf("%c",&temp);
getchar();
if(temp=='#')
{
T=NULL;
}
else
{
T=(treelink)malloc(sizeof(treenode));
T->ch=temp;
T->left=createtree(T->left);
T->right=createtree(T->right);
}
return T;
}
void preorder(treelink T) /*先序遍历*/
{
if(!T)
return;
printf("%c\t",T->ch);
preorder(T->left);
preorder(T->right);
}
void medorder(treelink T) /*中序遍历*/
{
if(!T)
return ;
medorder(T->left);
printf("%c\t",T->ch);
medorder(T->right);
}
void postorder(treelink T) /*后序遍历*/
{
if(!T)
return ;
postorder(T->left);
postorder(T->right);
printf("%c\t",T->ch);
}
调用这个程序,输入为:
建立的树为: