已知前序和中序,求后序遍历
来源:互联网 发布:支持ed2k下载软件 编辑:程序博客网 时间:2024/05/16 06:24
通过简单例子可以分析出,先由前序找出当前根,再通过中序找出左右子树序列,然后递归输出左右子树,最后输出根
#include "stdafx.h"#include <iostream>using namespace std;void GetEnOrder(char* startPreOrder,char* endPreOrder,char* startInOrder,char* endInOrder);void GetAll(char* preOrder,char* inOrder,int lenght){if (preOrder==NULL||inOrder==NULL||lenght<=0){return;}GetEnOrder(preOrder,preOrder+lenght-1,inOrder,inOrder+lenght-1);}void GetEnOrder(char* startPreOrder,char* endPreOrder,char* startInOrder,char* endInOrder){if (startPreOrder<=endPreOrder){char root=*startPreOrder;char* rootInOrder=startInOrder;while(rootInOrder<=endInOrder&&*rootInOrder!=root){rootInOrder++;}if (rootInOrder==endInOrder+1){throw std::exception("序列错误!");}int leftLen=rootInOrder-startInOrder;int rightLen=endInOrder-rootInOrder;if (leftLen>0){GetEnOrder(startPreOrder+1,startPreOrder+leftLen,startInOrder,rootInOrder-1);}if(rightLen>0){GetEnOrder(startPreOrder+leftLen+1,endPreOrder,rootInOrder+1,endInOrder);}cout<<root;}}int _tmain(int argc, _TCHAR* argv[]){char preOrder[]={'A','B','D','C'};char inOrder[]={'B','D','A','C'};GetAll(preOrder,inOrder,4);return 0;}
- 已知前序遍历和中序遍历,求后序遍历
- 已知前序遍历和中序遍历,求后序遍历
- 已知前序遍历和中序遍历,求后序遍历
- 已知前序遍历和中序遍历求后序遍历
- 已知中序遍历和前序遍历,求后序遍历
- 二叉树遍历:已知前序和中序,求后序
- 已知前序和中序,求后序遍历
- 已知前序遍历和中序遍历求后序遍历和层次遍历
- 已知树的前序遍历和中序遍历,求后序遍历
- 已知二叉树的中序遍历和前序遍历,如何求后序遍历
- 已知树的前序遍历和中序遍历,求后序遍历的方法(转)
- 已知二叉树的中序遍历和前序遍历,如何求后序遍历
- 已知二叉树的前序遍历和中序遍历求后序遍历
- 已知前序遍历和中序遍历,求后序遍历的程序实现
- 二叉树已知前序遍历和中序遍历,编程求后序遍历。
- 【算法入门经典】 已知树的前序遍历和中序遍历,求后序遍历
- 已知二叉树的前序遍历和中序遍历求后序遍历(二叉树)
- 已知前序遍历和中序遍历的结果求后序遍历
- 网站加速让pagespeed,yslow变98分
- MyEclipse生成WAR包并在Tomcat下部署发布
- nginx禁止某个IP或某个IP段访问网站
- Aspose.BarCode v5.7.0 修复关于PDF417条码的各种问题
- ObjectARX学习笔记
- 已知前序和中序,求后序遍历
- 黑马程序员 if 语句及练习
- 控件介绍:CToolTipCtrl
- 控件介绍:CToolTipCtrl使用详细解说
- find命令详解
- 如何进行单元测试
- android环境下解决java.io.IOException: Malformed ipv6异常的方法
- 腾讯宣布战略入股搜狗 360成为最大输家
- 开始新的学习旅途