*********************************/
/**//**********Gamesduan*********/
/**//**********BiTreeInLast*********/
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <malloc.h> #define NULL 0 int n=0;
typedef struct bitnode...{ //树结构 char data; struct bitnode *lchild,*rchild; }bitnode;
bitnode *CreateBiTreeInPre() //先序递归建树 { bitnode *m; char ch; scanf("%c",&ch); if(ch==' ') m=NULL; else { if(!(m=(bitnode *)malloc(sizeof(bitnode)))) exit(0); m->data=ch; m->lchild=CreateBiTreeInPre(); m->rchild=CreateBiTreeInPre(); } return m; }
bitnode *CreateBiTreeInLast1() //第一种方法,用倒序输入的方式进行输入,输入为“c空b空空” { bitnode *T; char ch; scanf("%c",&ch); if(ch==' ') T=NULL; else { T=(bitnode *)malloc(sizeof(bitnode)); T->data=ch; T->rchild=CreateBiTreeInLast2(); //先创建右子树 T->lchild=CreateBiTreeInLast2(); //再创建左子树 } return T; }
void preorder(bitnode *t) //先序递归输出 { if(t!=NULL) { printf("%c ",t->data); preorder(t->lchild); preorder(t->rchild); } }
void main() { bitnode *t=new bitnode; //t=CreateBiTreeInPre(); //先序 t=CreateBiTreeInLast1(); //后序1 preorder(t); }
|