- /*
- 烟台大学计算机学院
- 文件名称:xiangmu.cpp
- 作者:常路
- 完成日期:2017年11月5日
- 问题描述:二叉树构造算法的验证
- 输入描述:无
- 输出描述:知先序中序构造二叉树结果
- 用到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);
- }
第十周项目1(2)
最新推荐文章于 2020-06-11 22:36:44 发布