# 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); }
调用这个程序,输入为:
建立的树为: