输入前序遍历、中序遍历输出后续遍历
来源:互联网 发布:mac word 替换 编辑:程序博客网 时间:2024/04/29 23:48
//二叉树 输入前序遍历和中序遍历 输出后续遍历
// by nby
#include<iostream>
using namespace std;void ACore(int *startpreorder, int *endpreorder, int *startinorder, int *endinorder)
{
if (startpreorder == endpreorder)
{
cout << startinorder[0] << " ";
return;
}
int i = 0;
while (1)
{
if (startpreorder[0] == startinorder[i])
break;
else
++i;
}
if (i > 0)
ACore(startpreorder + 1, startpreorder + i, startinorder, startinorder + i - 1);
if (i < endpreorder - startpreorder)
ACore(startpreorder + i + 1, endpreorder, startinorder + i + 1, endinorder);
cout << startpreorder[0] << " ";
}
// 输入前序遍历和中序遍历 输出后序遍历(前提 数组中数不能相等)
void A(int *preorder, int *inorder, int length)
{
if (preorder == NULL || inorder == NULL || length <= 0)
return;
else
ACore(preorder, preorder + length - 1, inorder, inorder + length - 1);
}
int main()
{
int preorder[] = { 1, 2, 4, 5, 6, 7, 3 };
int inorder[] = { 4, 2, 6, 5, 7, 1, 3 };
A(preorder, inorder, length);
cout << endl;
return 0;
}
0 0
- 输入前序遍历、中序遍历输出后续遍历
- 前序遍历,中序遍历,后续遍历
- 二叉树--已知前序遍历和中序遍历,输出后续遍历
- 树-根据前序、中序遍历求后续遍历
- c++ 二叉树的构建 前序遍历 中序遍历 后续遍历 层次遍历
- 根据后续和中序遍历输出先序遍历
- 二叉树的基本操作,前序遍历,后续遍历,中序遍历
- 由前序遍历和中序遍历求后续遍历 递归实现
- 编程实现二叉树的建立,前序遍历,中序遍历和后续遍历
- java版本_二叉树(前序遍历,中序遍历,后续遍历)
- leetcode | 二叉树的前序遍历、中序遍历、后续遍历的非递归实现
- 由前序遍历和中序遍历重建二叉树,再实现后续遍历
- 算法基础 - 通过前序遍历和中序遍历得到后续遍历
- python实现二叉树,前序遍历,中序遍历,后续遍历
- 前序遍历 中序遍历 后续遍历的递归与非递归算法
- 根据中序遍历和后续遍历,输出树的层次遍历
- 二叉树遍历,已知前序遍历与中序遍历,求后续遍历 使用java(递归方式)实现
- 从前序遍历和中序遍历求后续遍历
- 猴子吃桃的问题
- 7.1 Spring MVC起步
- jni 初步学习
- Hadoop集群上基于Pig的通话记录的查询及错误排解(ERROR 2998: Unhandled internal error. name)
- c/c++中的static关键字总结
- 输入前序遍历、中序遍历输出后续遍历
- 将C语言的声明描述成为语言
- 数据库第二次作业 王小芬 2013212954 理学院
- 如何将asc文件转换成的txt文件,并导入到sql server中?
- Linux系统调用程序分析
- 前端试题
- 我的java学习笔记(4)关于方法参数传递
- 密码截取
- 配置 log4j 详解