这个程序就是实现不了要求,按照先序输出程序代码如下:
#include #include#define FALSE 1#define ERROR 0#define OK 1#define ON 0//定义树的节点typedef struct BiTNode{ char data; struct BiTNode Lchild,*Rchild;}BiTNode,*BiTree; typedef int Status;BiTree T;//递归方式,先序遍历建立二叉树Status CreateBiTree(BiTree *T){ char ch; scanf("%c",&ch); if (ch=='#') { *T=NULL; } else { if(!((*T)=(BiTNode)malloc(sizeof(BiTNode)))) return ERROR; else{ (*T)->data=ch; CreateBiTree(&((*T)->Lchild)); CreateBiTree(&((*T)->Rchild)); } }return OK;} int Visit(char c){ printf ("%c",c);return OK;} void PreOrder(BiTree T) { if (T) { Visit(T->data ); PreOrder(T->Lchild ); PreOrder(T->Rchild ); } }int main (){ printf("先序输入二叉树:\n"); CreateBiTree(&T); printf("先序输出二叉树:\n"); PreOrder(T); printf("\n");}
http://blog.csdn.net/yasic/article/details/41266093