第11周 项目1-验证算法(3)线索化二叉树(中序)
来源:互联网 发布:大华监控主机网络设置 编辑:程序博客网 时间:2024/05/29 04:02
问题及代码:
btree.cpp及btree.h代码详情参考二叉树算法库,
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;}
运行结果:
0 0
- 第11周项目1 -二叉树算法验证(3)中序线索化二叉树的算法验证
- 第11周 项目1-验证算法(3)线索化二叉树(中序)
- 第11周项目1-(3)中序线索化二叉树的算法验证
- 第11周项目1-验证算法(3)中序线索化二叉树的算法验证
- 第11周项目1-验证算法(3)中序线索化二叉树的算法验证
- 第11周项目1 验证算法(3)中序线索化二叉树的算法验证
- 第11周 项目1-验证算法(3)中序线索化二叉树的算法验证
- 第11周项目1-验证算法(3)中序线索化二叉树的算法验证
- 第11周项目1 验证算法(3)中序线索化二叉树的算法验证
- 第11周项目1-验证算法(3)中序线索化二叉树的算法验证
- 第11周项目1-验证算法(3)中序线索化二叉树的算法验证
- 第11周项目1-验证算法(3)中序线索化二叉树的算法验证
- 第11周项目1-验证算法(3)中序线索化二叉树的算法验证
- 第11周项目1 验证算法(3)中序线索化二叉树的算法验证
- 第11周项目1-验证算法(3)中序线索化二叉树的算法验证
- 第11周项目1-验证算法(3)中序线索化二叉树的算法验证
- 第11周项目1-验证算法(3)中序线索化二叉树的算法验证
- 第11周项目1-验证算法(3)中序线索化二叉树的算法验证
- spring 定时任务的写法
- 第十二周——【项目1 - 图基本算法库】
- 第12周项目2操作用邻接表存储的图
- 第十二周--项目1图基本算法库
- 应用图的深度优先遍历思路求解问题2
- 第11周 项目1-验证算法(3)线索化二叉树(中序)
- 【Leet Code】35. Search Insert Position---Medium
- 加密解密java
- 安卓输入法布局修改
- 第十二周-图的广度优先遍历
- 第十周项目3 利用二叉树遍历思想解决问题(1)
- 第八周 项目3-4
- Linux C 时间服务器
- 第十一周 层次遍历算法的验证