文章转载自http://blog.csdn.net/touzani/article/details/1637195
根据前序遍历序列和中序遍历序列可以构造唯一的二叉树。
假设序列为string型
根据前序遍历的特点, 知前序序列(Pre)的首个元素(Pre[0])为根(root), 然后在中序序列(In)中查找此根(Pre[0]), 根据中序遍历特点, 知在查找到的根(root) 前边的序列...
分类:
编程语言 时间:
2014-11-08 16:47:32
阅读次数:
146
先序遍历:访问根,遍历左子树,遍历右子树,简称:DLR。
中序遍历:遍历左子树,访问根,遍历右子树,简称:LDR。
后序遍历:遍历左子树,遍历右子树,访问根,简称:LRD。
数组搞的:
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2014-11-05 21:38:44
阅读次数:
294
题目描述Description 我们都很熟悉二叉树的前序、中序、后序遍历,在数据结构中常提出这样的问题:已知一棵二叉树的前序和中序遍历,求它的后序遍历,相应的,已知一棵二叉树的后序遍历和中序遍历序列你也能求出它的前序遍历。然而给定一棵二叉树的前序和后序,你却不能确定其中序遍历序列,考虑如下图中的几棵...
分类:
其他好文 时间:
2014-11-05 19:18:10
阅读次数:
278
给你一颗真二叉树(节点要么没有孩子,要么有两个孩子)的前序和后序遍历输出中序遍历序列。
/*************************************************************************
> File Name: Euler.cpp
> Author: acvcla
> QQ:
> Mail: acvcl...
分类:
其他好文 时间:
2014-11-05 17:14:01
阅读次数:
171
题目描述Description设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第j个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下:s...
分类:
其他好文 时间:
2014-11-05 16:39:57
阅读次数:
113
给定中序遍历inorder和后序遍历postorder, 请构造出二叉树.算法思路: 设后序遍历为po, 中序遍历为io.首先取出po的最后一个节点作为根节点, 同时将这个节点入stn栈;随后比较io的最后一个节点和stn栈顶节点:如果不同则将此节点添加到栈顶节点的右侧并入stn栈, 同时从po中删...
分类:
其他好文 时间:
2014-11-04 16:39:28
阅读次数:
162
逆时针旋转90度打印二叉树是一种特殊的中序遍历算法
图解逆时针旋转90度操作
实现也特别简单,跟中序遍历算法差不多,在输出节点值前,用个特殊标记记录层数并输出适当的空格就可以了。
代码:
void prtbtree(BiTNode *p,int cur)//逆时针旋转90度输出二叉树
{
if(p)
{
prtbtree(p->rch,cur+1);...
分类:
其他好文 时间:
2014-11-03 13:06:31
阅读次数:
617
"."代表空树,程序分别以先序、中序和后序的方式递归遍历二叉树,再以中序非递归的方式遍历二叉树,并以中序递归方式输出叶子结点并统计叶子结点的个数。最后将二叉树线索化并中序遍历线索二叉树。...
分类:
其他好文 时间:
2014-11-03 10:18:08
阅读次数:
215
对二叉树的遍历: 先序遍历:【先访问根节点】 先访问根节点, 再先序访问左子树, 再先序访问右子树; ————递归关系 中序遍历:【中间访问根节点】 中序遍历左子树, 再访问根节点, 再中序遍历右子树; ————递归关系 后序遍历...
分类:
其他好文 时间:
2014-11-02 22:18:20
阅读次数:
197