//已知先序、中序求后序 //测试数据: //样例输入: // DBACEGF ABCDEFG // BCAD CBAD //样例输出: // ACBFGED // CDAB #include "stdio.h" #include <string.h> void build(char* prestr,char* instr,char* laststr,int len){ if(len<=0)return; int pos = strchr(instr,prestr[0])-instr; //找到根节点在中序遍历中的位置 build(prestr+1,instr,laststr,pos); //递归构造左子树的后序遍历 build(prestr+pos+1,instr+pos+1,laststr+pos,len-pos-1); //递归构造右字数的后序遍历 laststr[len-1] = prestr[0]; //把根节点添加到后序遍历的后端 } main(){ char pres[10000]; char ins[10000]; char lasts[10000]; while(scanf("%s%s",pres,ins)== 2){ int len = strlen(pres); build(pres,ins,lasts,len); lasts[len]='\0'; printf("%s\n",lasts); } }
相关推荐
本篇文章将深入探讨“已知先序中序求后序”的方法,以及如何通过C++实现这一过程。 **先序遍历**:在先序遍历中,我们按照以下顺序访问树的节点:根节点 -> 左子树 -> 右子树。在给定的先序遍历序列中,根节点是...
使用数组求解已知树的先序和中序求解后序的问题
C语言,数据结构课程,知道中序和后序遍历,画二叉树和写出前序遍历。
假设我们已知一个二叉树的先序遍历和中序遍历序列,我们可以按照以下步骤重建后序遍历: 1. **找到根节点**:在中序遍历序列中,先序遍历的第一个元素是整个二叉树的根节点。因此,可以将中序遍历序列分成两部分:...
根据给定文件的信息,本文将围绕“已知先序和中序遍历序列,求后序遍历序列”的核心主题进行展开,详细解析其中涉及的数据结构与算法,并深入理解其在C语言中的实现细节。 ### 数据结构:二叉树 在计算机科学中,*...
### 有前序中序求后序遍历 在数据结构的学习中,二叉树的遍历是非常重要的概念之一。二叉树的遍历方法主要包括三种:前序遍历、中序遍历以及后序遍历。每种遍历方式都有其独特的应用场景,而在实际编程中,有时候...
C++源码,可在VC6.0环境下直接运行,核心代码非常经典,不到10行且易懂。
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度)。 【输入格式】 两行,每行一个字符串,分别表示中序和后序排列 【输出格式】 一个字符串,表示所求先序排列 【样例...
标题"树的遍历:已知中序后序求先序"涉及的是如何根据一棵树的中序遍历和后序遍历序列重建其先序遍历。这是因为在这三种遍历方式中,先序遍历序列唯一确定了一棵树(假设没有重复的节点值),而中序和后序遍历序列...
已知中序遍历和后序遍历,求前序遍历。有比较详尽的中文注释。
本节将详细介绍二叉树的操作,包括建立、删除以及三种遍历方式:中序遍历、先序遍历和后序遍历。 1. **二叉树的建立** - **动态建立**:通常在编程中,我们可以通过动态内存分配创建二叉树的节点,然后根据需求...
对于题目中提到的“二叉树先中序求后序”,意味着我们已经知道了二叉树的先序和中序遍历结果,现在需要计算出后序遍历的结果。这可以通过已知的先序和中序遍历来构造二叉树,然后再进行后序遍历。 1. 首先,从先序...
已知二叉树的中序与后序排列求二叉树的先序排列
数据结构C++二叉链表的先序遍历、中序遍历和后序遍历实现
非常简练,我自己修改而成,感觉自己熟悉的代码,一见如故,非常情切,我的座右铭是熟能生巧,代码能背下来最好
C++先序后序序列求中序序列代码 本资源提供了一个使用C++语言编写的可运行源代码,用于求解中序序列问题。该代码通过建立二叉树,然后对其进行中序线索化,最后进行中序遍历输出结果。 知识点1:二叉树的建立 在本...
在本文中,我们将深入探讨如何使用C++实现链式二叉树,并且重点介绍非递归方式下的先序、中序和后序遍历。首先,我们定义了一个模板类`BiNode`,它代表二叉树中的一个节点,包含数据成员`data`以及指向左右子节点的...
已知中序,前序和后序,中序,恢复二叉树 本文将详细介绍如何根据中序和后序、或中序和先序序列来恢复二叉树。我们将通过对代码的解释,详细介绍如何使用递归函数来构建二叉树,并使用先序和后序遍历来验证结果。 ...