Status InsertBiTree(BiTree &T,int e) //插入新结点 { if(T==NULL){ T=(BiTNode *)malloc(sizeof(BiTNode)); T->data=e;T->lchild=NULL; T->rchild=NULL; return 1; } if(T->data<e) InsertBiTree(T->rchild,e); else InsertBiTree(T->lchild,e); return 0; }
int main() //主函数 { BiTree T=NULL; int i,n,e; //生成二叉排序树T scanf("%d",&i); while(i!=-1) { e=i; InsertBiTree(T,e); scanf("%d",&i); } //前、中、后序遍历二叉树 PreOrderTraverse(T,PrintElement); printf("\n"); InOrderTraverse(T,PrintElement); printf("\n"); PostOrderTraverse(T,PrintElement); printf("\n"); //计数并输出 printf("%d\n", TreeCount(T)); return 0;//补充代码 }//main
Status TreeCopy(BiTree Ta,BiTree &Tb) //树的复制 { if(Ta==NULL) return 0; int e = Ta->data; InsertBiTree(Tb,Ta->data); TreeCopy(Ta->lchild,Tb->lchild); TreeCopy(Ta->rchild,Tb->rchild); return 1; }
int main() //主函数 { BiTree Ta=NULL,Tb=NULL; int i,n,e; scanf("%d",&n);//生成二叉排序树Ta for(i=0;i<n;i++){ scanf("%d",&e); InsertBiTree(Ta,e); } //前、中、后序遍历二叉树 PreOrderTraverse(Ta,PrintElement); printf("\n"); //getchar(); InOrderTraverse(Ta,PrintElement); printf("\n"); //getchar(); PostOrderTraverse(Ta,PrintElement); printf("\n"); //getchar(); //printf("Start to copy:\n"); //getchar(); TreeCopy(Ta,Tb);//复制生成Tb scanf("%d",&e); InsertBiTree(Tb,e);//在Tb中插入新结点 PreOrderTraverse(Tb,PrintElement); printf("\n"); InOrderTraverse(Tb,PrintElement); printf("\n"); PostOrderTraverse(Tb,PrintElement); printf("\n"); scanf("%d",&e); InsertBiTree(Ta,e); PreOrderTraverse(Ta,PrintElement); printf("\n"); InOrderTraverse(Ta,PrintElement); printf("\n"); PostOrderTraverse(Ta,PrintElement); printf("\n"); return 0;//补充代码 }//main
int main() //主函数 { BiTree T=NULL; int i,n,e; scanf("%d",&n);//生成二叉排序树Ta for(i=0;i<n;i++){ scanf("%d",&e); InsertBiTree(T,e); } //前、中、后序遍历二叉树 PreOrderTraverse(T,PrintElement); printf("\n"); InOrderTraverse(T,PrintElement); printf("\n"); PostOrderTraverse(T,PrintElement); printf("\n"); scanf("%d",&i); }//main