利用二叉树中序及后序遍历确定该二叉树的先序序列

原创 2018年04月17日 16:49:38
已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及后序遍历结果,要求输出其先序遍历结果。

输入

第一行为中序序列  
第二行为后续序列

输出

输出为遍历二叉树得到的先序序列

样例输入

BFDAEGC
FDBGECA

样例输出

ABDFCEG
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
using namespace std;
typedef struct Node
{
	char data;
struct Node *left,*right;
}BitTree;
void Create(BitTree *&T, char *a, char *b, int n)
{
	int k;
	if (n <= 0)
	{
		T = NULL;
		return;
	}
	for (char *temp = a; temp<a + n; temp++)
	{
		if (*temp == *(b + n - 1))
		{
			k = temp - a;
			T = new BitTree;
			T->data = *temp;
			break;
		}
	}
	Create(T->left, a, b, k);
	Create(T->right, a + k + 1, b + k, n - k - 1);
}

void Disp(BitTree *T)
{
	if (T)
	{
		cout << T->data;
		Disp(T->left);
		Disp(T->right);
	}
}

main()
{
	BitTree *T;
	int n;
	char zhong[100];
	char hou[100];
	cin >> zhong;
	cin >> hou;
	n = strlen(hou);
	Create(T, zhong, hou, n);
	Disp(T);
}

版权声明:本文为博主原创文章,转载注明出处 https://blog.csdn.net/qq_38271800/article/details/79977215

总把新桃换旧符

总把新桃换旧符——写在《最后期限》出版之前上个星期,《最后期限》的编辑给我一个电话,告诉我这本书在本周内就会生产出来了,让我颇感欣慰。从8月以来,心情一直不好,在上海与CSDN网友见面之后也没有什么特...
  • gigix
  • gigix
  • 2002-12-26 15:28:00
  • 2400

swustoj利用二叉树中序及后序遍历确定该二叉树的先序序列(0983)

已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及后序遍历结果,要求输出其先序遍历结果...
  • Swust_Zeng_zhuo_K
  • Swust_Zeng_zhuo_K
  • 2017-04-17 13:37:17
  • 730

利用二叉树中序及先序遍历确定该二叉树的后序序列(0984)

已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及先序遍历结果,要求输出其后序遍历结果...
  • Swust_Zeng_zhuo_K
  • Swust_Zeng_zhuo_K
  • 2017-04-17 13:22:40
  • 238

利用二叉树中序及先序遍历确定该二叉树的后序序列

  • 2013年12月09日 14:43
  • 1KB
  • 下载

已知二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列

题目描述 输入二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列。 输入 第一行输入二叉树的先序遍历序列; 第二行输入二叉树的中序遍历序列。 输出 输出该二叉树的后序遍历序列。...
  • u013962600
  • u013962600
  • 2014-05-16 22:59:29
  • 5854

根据先序和中序或后序和中序建立二叉树及树的遍历

二叉树的建立用了递归的思想,本质上是:  先建立根节点--->再建立左子树----->再建立右子树 二叉树的遍历分为先序遍历,中序遍历后序遍历,还有层序遍历    注意无论先序中序还是后序都是先遍历左...
  • u010667082
  • u010667082
  • 2015-05-30 14:49:26
  • 4974

白话篇:利用二叉树先序/中序/后序确定二叉树求法分析

前篇: 二叉树的遍历: 二叉树的遍历是指按照一定次序访问二叉树中所有的节点,并且每个节点仅仅能够访问一次。这也是二叉树最基本的运算。 常用的3钟递归遍历方式: 1.先序遍历,过程: (1)访...
  • lishuzhai
  • lishuzhai
  • 2016-05-31 13:49:09
  • 2404

如何根据前序、中序、后序遍历还原二叉树

面试题目或多或少会出现这样的选择题或者简答题: 首先我们得知道概念: 前序遍历:先访问当前节点,再访问当前节点的左子树,最后访问当前节点的右子树。对于二叉树,深度遍历与此同。规律:根在前;子树在根...
  • yanerhao
  • yanerhao
  • 2015-04-21 20:49:38
  • 6045

由先序+后序遍历确定序列是否唯一并输出一个中序序列

由先序+后序遍历确定序列是否唯一并输出一个中序序列@(算法学习)在前面讨论过如何确定两种唯一二叉树的情况。 先序+中序 后序+中序 中序是必须要有的,因此按照这个提示原则,我们根据根在先序或后序的位置...
  • u011240016
  • u011240016
  • 2016-11-17 01:09:40
  • 1065

二叉树构建,先序,中序,后序遍历(以及非递归实现),广度优先遍历

二叉树是一类简单而又重要的树形结构,在数据的排序、查找和遍历方面有着广泛的应用。由于其清晰的结构,简单的逻辑,广泛的应用和大量的指针操作,在面试过程屡见不鲜,快被面试官玩坏了。相关的问题在百行代码内就...
  • K346K346
  • K346K346
  • 2016-03-24 21:25:21
  • 4943
收藏助手
不良信息举报
您举报文章:利用二叉树中序及后序遍历确定该二叉树的先序序列
举报原因:
原因补充:

(最多只允许输入30个字)