第十周 项目 1

来源:互联网 发布:史蒂文斯教练知乎 编辑:程序博客网 时间:2024/06/05 03:58
/*  烟台大学计算机学院    文件名称:xiangmu.cpp    作者:陈军正   完成日期:2017年12月7日    问题描述:二叉树构造算法的验证   输入描述:无   输出描述:知先序中序构造二叉树结果  用到btree2.h算法库   */           #include <stdio.h>  #include <malloc.h>  #include "../btree2.h"    BTNode *CreateBT1(char *pre,char *in,int n)  {      BTNode *s;      char *p;      int k;      if (n<=0) return NULL;      s=(BTNode *)malloc(sizeof(BTNode));     //创建二叉树结点*s      s->data=*pre;      for (p=in; p<in+n; p++)                 //在中序序列中找等于*ppos的位置k          if (*p==*pre)                       //pre指向根结点              break;                          //在in中找到后退出循环      k=p-in;                                 //确定根结点在in中的位置      s->lchild=CreateBT1(pre+1,in,k);        //递归构造左子树      s->rchild=CreateBT1(pre+k+1,p+1,n-k-1); //递归构造右子树      return s;  }      int main()  {      ElemType pre[]="ABDGCEF",in[]="DGBAECF";      BTNode *p;        p=CreateBT1(pre,in,7);        DispBTNode(p);  }  
运行结果: