题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列为{1,2,4,7,3,5,6,8}和中序遍历的序列{4,7,2,1,5,3,8,6},则重建出下图所示的二叉树并输出它的头结点。分析:前序遍历的第一个元素就是根...
分类:
其他好文 时间:
2015-07-21 10:30:03
阅读次数:
126
题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。...
分类:
其他好文 时间:
2015-07-20 12:59:00
阅读次数:
139
二叉树类代码:package binarytree;import linkqueue.LinkQueue;public class BinaryTree { class Node { public Object data; public Node lchild; public Node rch...
分类:
编程语言 时间:
2015-07-19 16:10:03
阅读次数:
139
二叉树的建立:对于二叉树,如果单纯通过前序遍历或后序遍历以及中序遍历是无法唯一确定一棵二叉树的前序+中序后序+中序才可以唯一确定一棵二叉树。因此我们可以通过前序+中序或者后序+中序的结果对二叉树进行确定。假设一棵二叉树为如下:则前序和中序遍历的结果是:我们首先要对前序遍历和中序遍历的特点进行了解。如...
分类:
其他好文 时间:
2015-07-17 20:44:22
阅读次数:
166
重建二叉树问题描述分析与解法用java实现的代码如下: 1 package chapter3jiegouzhifa.RebuildBinTree; 2 3 /** 4 * 重建二叉树 5 * 递归解法 6 * @author DELL 7 * 8 */ 9 public class Re...
分类:
其他好文 时间:
2015-07-17 00:00:44
阅读次数:
441
直接上代码了struct BTNode { int val; BTNode *lchild; BTNode *rchild; BTNode(int x): val(x), lchild(NULL), rchild(NULL){}};BTNode* rebuildBinTr...
分类:
其他好文 时间:
2015-07-15 22:14:42
阅读次数:
88
题目1385:重建二叉树时间限制:1 秒内存限制:32 兆特殊判题:否提交:4419解决:1311题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2...
分类:
其他好文 时间:
2015-07-15 11:01:21
阅读次数:
164
#include#includetypedef char ElemType;typedef enum{Link,Thread} PointerTag; //Link为1,表示连接左孩子;Thread为0,表示连接前继项;//创建二叉树的结点;typedef struct BiThrNode{ ...
分类:
编程语言 时间:
2015-07-11 01:06:32
阅读次数:
180
对于一颗二叉树,可以根据先序遍历(或者后序遍历)和中序遍历(树中不含重复的数字)重新还原出二叉树。
解析:
1. 先序遍历序列的第一个元素必定是根节点,可以由此获取二叉树的根节点。
2. 根据根节点,在中序遍历序列中查找该节点,由中序遍历的性质可知,中序遍历中该根节点左边的序列必定在根节点的左子树中,而根节点右边的序列必定在右子树中。由此可以知道先序遍历中左子树以及右子树的起止位置。
3. 找到了左右子树前序遍历和中序遍历再用同样的方法分别构建左右子树,典型的递归思想。...
分类:
其他好文 时间:
2015-07-09 18:00:45
阅读次数:
345
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。代码:package com.huawei;im...
分类:
其他好文 时间:
2015-07-06 23:08:56
阅读次数:
315