(2)二叉树由后序(LRD)和中序(LDR)得到前序(DLR)
二叉树由后序(LRD)和中序(LDR)得到前序(DLR)
具体代码
/*
DCBHKGFEA 后序
BDCAEHGkF 中序
ABCDEFGHK 前序思路:根据后序找根节点->分割中序->在分割出来的中序里继续找根节点.............*/#include<iostream>
#include<string>
using namespace std;void MidSplitToTwoArray(const int mid, const string zhongxv, string &midleft, string &midright)//分割中序字符串
{for (int i = 0; i < zhongxv.size(); i++){if (i < mid)midleft = midleft + zhongxv[i];if (i > mid)midright = midright + zhongxv[i];}//切割中序
}void HouSplitToTwoArray(const int houxvleftsize, const string houxv, string &houleft, string &houright)//切割后序字符串
{for (int i = 0; i <= houxv.size() - 2; i++)//因为最后一位是已经求出来了的根节点{if (i < houxvleftsize)houleft = houleft + houxv[i];if (i >= houxvleftsize)houright = houright + houxv[i];}//切割后序
}void findRoot(string houxv,string zhongxv)//每次都找出根节点,一批一批的找,好像一不小心写成了得到前序的代码(本来还不知道中序后序得到前序是怎么写的...)
{//后序找根节点,中序分割出两个数组//cout << "当前后序:" << houxv<< endl;//cout << "当前中序:" << zhongxv<< endl;int num = houxv.size();cout<< houxv[num - 1];//输出根节点//cout << " 根节点" << houxv[num - 1]<< endl;//输出根节点if (num>1)//还可以继续分割,没结束{int mid=-1;for (int i = 0; i < num; i++){if (zhongxv[i] == houxv[num - 1])//找到中序里面的分割点{mid = i;break;}}string midleft="";//左子树中序string midright="";//右子树中序string houleft="";//左子树后序string houright="";//右子树后序MidSplitToTwoArray(mid,zhongxv,midleft,midright);//切割中序int houxvleftsize = midleft.size();HouSplitToTwoArray(houxvleftsize,houxv,houleft,houright);//切割后序//cout << "houleft:" << houleft << " midleft:" << midleft << endl;//cout << "houright:" << houright << " midright:" << midright << endl;//cout << endl;if(midleft.size()!=0 && houleft.size()!=0)//在剩余的节点中重新找根节点findRoot(houleft, midleft);if (midright.size() != 0 && houright.size() != 0)findRoot(houright, midright);}}int main()
{string houxv;string zhongxv;cout << "请输入二叉树的后序遍历:";getline(cin, houxv);cout << "请输入二叉树的中序遍历:";getline(cin, zhongxv);cout << "得到的先序遍历:";findRoot(houxv,zhongxv);//感觉不知不觉写出了 由 后序 中序 得到前序...return 0;
}
程序运行
(2)二叉树由后序(LRD)和中序(LDR)得到前序(DLR)相关推荐
- 【二叉树】二叉树的遍历规则(前序遍历、后序遍历、中序遍历)|前/后/中缀表达式...
转自:https://www.cnblogs.com/turnips/p/5096578.html 今天看了一些关于平和查找二叉树的问题,顺便也复习了一下二叉树的遍历规则,写一下学习文档. 树的遍历顺 ...
- 二叉树 —— 创建二叉树 先序遍历 、中序遍历、后序遍历(递归方式、非递归方式)
#include<stdio.h> #include<malloc.h> #include<stdlib.h> typedef char DataType; #de ...
- 数据结构与算法之二叉树的先序遍历,中序遍历,后序遍历
数据结构与算法之二叉树的先序遍历,中序遍历,后移遍历 目录 实现二叉树的先序,中序,后序遍历,包括递归方式和非递归方式 在二叉树中找到一个节点的后继节点 1. 实现二叉树的先序,中序,后序遍历,包括递 ...
- C实现二叉树的先序遍历,中序遍历,后序遍历
1 要创建的二叉树图 2 输出结果图 : 3 完整代码如下: #include<stdio.h> #include<malloc.h>//定义二叉树 typedef stru ...
- 【7-10 PAT】树的遍历(给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。)
题干: 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 解题报告: dfs求出这棵树来,然后bfs求层序遍历就行了. AC代码: #include&l ...
- 7-10 先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数 (10 分)
7-10 先序序列创建二叉树,输出先序序列.中序序列.后序序列并输出叶子结点数 (10 分) 对于给定的二叉树,输出其先序序列.中序序列.后序序列并输出叶子结点数. 输入格式: 二叉树的先序遍历序列. ...
- 2018.7.28 二叉树的遍历规则(前序遍历、后序遍历、中序遍历)
树的遍历顺序大体分为三种:前序遍历(先根遍历.先序遍历),中序遍历(中根遍历),后序遍历(后根遍历). 前序遍历:前序遍历可以记为根左右,若二叉树为空,则结束返回. 前序遍历的规则:(1)访问根节点( ...
- 【数据结构笔记10】二叉树的先序、中序、后序遍历,中序遍历的堆栈/非递归遍历算法,层序遍历,确定一个二叉树,树的同构
本次笔记内容: 3.3.1 先序中序后序遍历 3.3.2 中序非递归遍历 3.3.3 层序遍历 3.3.4 遍历应用例子 小白专场:题意理解及二叉树表示 小白专场:程序框架.建树及同构判别 文章目录 ...
- 根据先序序列和中序,后序和中序序列创建二叉树
思考:如何才能确定一棵树? 结论: 通过中序遍历和先序遍历可以确定一个树 通过中序遍历和后续遍历可以确定一个树 通过先序遍历和后序遍历确定不了一个树. 算法实现: ...
最新文章
- 重磅发布: 阿里云WAF日志实时分析上线 (含视频)
- 发布国内首个无服务器容器服务,运维效率从未如此高效
- 图解Win32汇编字符串和Debug输出
- 2字节取值范围_5G NR 下行同步SSB(2)—PSS和SSS的用途
- hadoop 常用hdfs命令
- 信息学奥赛一本通 1094:与7无关的数 | OpenJudge NOI 1.5 39
- thinkphp v5.0.11漏洞_Thinkphp 5.0远程代码执行漏洞
- attention :为什么要用attention机制
- MyBatis拦截器原理探究MyBatis拦截器原理探究 1
- 梦想——似乎忘记了是什么了
- JS中innerHTML 和innerText和value的区别
- 2019年大学计算机基础题库,大学计算机基础考试题库(含答案)
- 前端框架(混合开发框架)
- VMware虚拟机网络设置
- 隐私浏览器DuckDuckGo爆出漏洞,可导致URL欺骗攻击
- 关机的代码和电脑骚操作
- 【方案分享】2021AMII品牌女装抖音直播间运营方案.pptx
- host切换工具——SwitchHosts
- 导出文件提示rpc服务器不可用,rpc服务器不可用怎么办 RPC服务器不可用解决方法有哪些...
- java山海经之轩辕_轩辕传奇手游山海经任务:盘古开天之遂古之初
热门文章
- 1-3 5-7的c语言程序,C语言求1-1/3+1/5-1/7+...——小程序,大道理
- 成功解决ValueError: Duplicate plugins for name projector
- matlab多项式操作
- Git, GitHub使用记录
- 【appium】appium自动化入门之基本参数完整版(67个appium基本参数和关键字)
- asp.net之购物车
- vivo手机如何使用非官方手机主题
- pyepics Device:PVs的集合
- (升级版)基本粒子结构以及宇宙现象的徦说
- 少年碎碎念:《WHOLENESS》