第十一周项目1(2)-二叉树构造算法的验证
2015-11-09 17:23
239 查看
算法库
例图:
main.cpp
运行结果:
例图:
main.cpp
#include <stdio.h> #include <malloc.h> #include "btree.h" BTNode *CreateBT1(char *pre,char *in,int n) /*pre存放先序序列,in存放中序序列,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 *b1; b1=CreateBT1(pre,in,7); printf("b1:"); DispBTNode(b1); printf("\n"); return 0; }
运行结果:
相关文章推荐
- redis使用watch完成秒杀抢购功能
- 神的规范:排序算法(三):冒泡排序
- OC- 字典
- WinFrom 线程的使用(开启、暂停、停止)
- SSL学习笔记
- openssl生成证书
- Windows server2003 + sql server2005 集群配置安装
- 第十一周项目2—用二叉树求解代数表达式
- jquery移除数组中的某个元素
- 如果查看一个project的提交
- ubuntu 下安装bochs
- Java基础之理解Annotation
- php7 性能测试
- iOS设计模式之工厂模式
- mac下 apacha tomcat相关操作
- gulp教程之gulp-minify-css
- 线程的六种状态及线程状态的判断和改变
- 第十一周项目一(4)~~哈夫曼树
- 变量声明和定义的深入理解
- Python嵌入C/C++ (Python核心编程)