树结构,尤其是二叉树结构是算法中常遇见的,这里根据学习过程做一个总结。 二叉树所涉及到的知识点有:满二叉树与完全二叉树、节点数目的关系、节点数与二叉树高度的关系、层次遍历、深度优先遍历、广度优先遍历等等。 这里对二叉树的基本结构实现c++版本以及python版本的代码,并且实现二叉树的前中后序遍历过 ...
分类:
编程语言 时间:
2016-09-17 23:40:24
阅读次数:
218
1.已知完全二叉树的层次遍历,求其前、中、后序 测试样例: ) 对于例1: 前序遍历:ABDGIJKLCEFH 中序遍历:DIGJLKBAECHF 后序遍历:ILKJGDBEHFCA 对于例2: 前序遍历:eadcbjfghi 中序遍历:abcdjefhgi 后序遍历:bcjdahigfe //用顺 ...
分类:
其他好文 时间:
2016-05-10 09:49:54
阅读次数:
249
链接:poj.org/problem?id=2255 题意: 分别给你一个二叉树的前序遍历序列和中序遍历序列,让你给出这个二叉树的后序遍历序列. 思路: 对于二叉树的三种遍历方式,都可以使用递归来实现,那么也一定可以使用递归来拆解,以达到从遍历序列确定二叉树具体结构的目的.对于前序遍历来说,第一个字 ...
分类:
其他好文 时间:
2016-05-05 22:21:36
阅读次数:
232
对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对
于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归..
分类:
编程语言 时间:
2016-04-22 16:46:29
阅读次数:
164
题目要求很简单,前中后序遍历一棵二叉树。坑爹的是这道题的输入数据和测试数据压根不一样,找了好久原因,去讨论区看见有别人发的测试样例,修改了一下就AC了 测试样例是这个:DEH##FJ##G#CK###A#B## ...
分类:
其他好文 时间:
2016-04-12 00:13:58
阅读次数:
166
#pragmaonce//.hpp函数头文件
#include<iostream>
usingnamespacestd;
enumBinTreeNodeChildType
{
Thread,
Link
};
template<classT>
structBinaryTreeThrNode
{
public:
T_data;//数据域
BinaryTreeThrNode<T>*_leftChild;//做孩子
BinaryTreeThr..
分类:
编程语言 时间:
2016-03-16 19:24:53
阅读次数:
258
二叉树的前中后序遍历,可以用递归秒解,看起来不值一提。但如果不允许采用递归,要怎么实现呢?还是先来看看递归算法的实现吧:def visit( root): if root is not null: #1 visit(root.left) ...
分类:
其他好文 时间:
2015-09-07 21:12:22
阅读次数:
174
一:前言二叉树的遍历方法分四种:前序,中序,后序以及层次遍历。其中,前中后遍历方法的实现分递归和非递归,非递归遍历的实现需要借助于栈。实际上,递归的调用就是一种栈的实现,所以,非递归遍历就需要人工借助栈结构来实现。而层次遍历需要借助队列。二:前中后序遍历递归遍历:递归遍历的思想和方法很简单,通过调整...
分类:
编程语言 时间:
2015-08-11 00:03:14
阅读次数:
232
poj 2225
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long LL;
typedef struct node{
char data;
node *lef...
分类:
其他好文 时间:
2015-08-05 16:20:51
阅读次数:
85
建立一个二叉树,求其高度,首先前、中、后序遍历,求叶子数,求树深度并且判断是否为平衡二叉树。二叉树是一个典型的数据结构,华为往年的试题中也有考到这个知识点的。下面介绍几个树的重要性质:
性质1 二叉树第i层上的结点数目最多为2^(i-1)(i≥1)。
性质2 深度为k的二叉树至多有2^k-1个结点(k≥1)。
性质3 在任意-棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n...
分类:
其他好文 时间:
2015-06-28 18:55:17
阅读次数:
168