#include #include #include #define Node malloc(sizeof(NODE)) typedef struct binary_tree_node NODE; struct binary_tree_node { char c; NODE *L, *R; // Left and right sons }; void Preorder(), Inorder(), Postorder(); main() { NODE *T, *p, *q; T=Node; T->c='A'; p=T->L=Node; p->c='B'; q=T->R=Node; q->c='C'; p->L=Node; p->L->L=p->L->R=NULL; p->L->c='D'; p->R=Node; p->R->L=p->R->R=NULL; p->R->c='E'; q->L=Node; q->L->L=q->L->R=NULL; q->L->c='F'; q->R=Node; q->R->L=q->R->R=NULL; q->R->c='G'; printf("Preorder: "); Preorder(T); printf("\n"); printf("Inorder: "); Inorder(T); printf("\n"); printf("Postorder:"); Postorder(T); printf("\n"); } void Preorder(NODE *T) { if(T!=NULL){ printf("%c", T->c); Preorder(T->L); Preorder(T->R); } } void Inorder(NODE *T) { if(T!=NULL){ Inorder(T->L); printf("%c", T->c); Inorder(T->R); } } void Postorder(NODE *T) { if(T!=NULL){ Postorder(T->L); Postorder(T->R); printf("%c", T->c); } }