#include <stdio.h>
#include <stdlib.h>struct node{ char data;struct node* left;
struct node* right;};void preorder(struct node* root) //前序遍历{ if(root == NULL) return ; else { printf("%c\t", root->data); pre_order(root->left); pre_order(root->right); }}void minorder(struct node* root) //中序遍历{ if(root == NULL) return ; else { min_order(root->left); printf("%c\t", root->data); min_order(root->right); }}void postorder(struct node* root) //后序遍历{ if(root == NULL) return ; else { postorder(root->left); postorder(root->right); printf("%c\t", root->data); }}struct node* create(struct node* root) //利用前序创建树,中序和后序不能创建树{ char ch = getchar(); if(ch == '#') return NULL; else { root = malloc(sizeof(struct node)); root->data = ch; root->left = create(root->left); root->right = create(root->right); return root; }}int main(){ struct node* root = NULL; root = create(root); preorder(root); printf("\n"); minorder(root); printf("\n"); postorder(root); printf("\n"); return 0;}