树节点定义: 递归建立二叉树: 1、先序遍历 遍历方式:根节点-->左节点-->右节点 递归先序遍历: 非递归遍历: 对于任意一个结点p 1)访问结点p,并将p入栈 2)将p变为p的左孩子结点,如果p的不为空,循环至 1); 否则弹出当前栈顶使用p接收,将p变为p的右孩子结点; 3)当p结点为nul ...
分类:
其他好文 时间:
2016-06-02 19:43:44
阅读次数:
147
二叉树(Binary Tree)是另一种树型结构,它的特点是每个结点至多只有两棵子树(即二叉树中不存在度大于2的结点),并且,二叉树的字数由左右之分,顺序不可颠倒。 二叉树的存储结构:1.顺序存储结构 (仅适用于完全二叉树) 2.链式存储结构 二叉树的遍历: 先序遍历二叉树的操作定义为: 若二叉树为 ...
分类:
其他好文 时间:
2016-05-31 08:56:41
阅读次数:
174
树的中序遍历。先不断压入左结点至末尾,再访问,再压入右结点。注意和先序遍历的比较 vector<int> inorderTraversal(TreeNode *root) { vector<int> result; stack<TreeNode *>s; TreeNode *p = root; wh ...
分类:
其他好文 时间:
2016-05-28 17:12:05
阅读次数:
116
树的先序遍历。定义一个栈,先压入中间结点并访问,然后依次压入右、左结点并访问。 vector<int> preorderTraversal(TreeNode *root) { vector<int> result; stack<TreeNode *>s; TreeNode *p; p = root; ...
分类:
其他好文 时间:
2016-05-28 16:00:27
阅读次数:
138
二叉树中的三种遍历方式,是我们最为熟知的,通过先序遍历+中序遍历或者是中序遍历+后序遍历都可以唯一确定一棵二叉树;但是注意,先序遍历+后序遍历不能确定一棵二叉树,但是如果一棵二叉树中只有度为0和度为2的节点,那么这种遍历方式也是可以确定一棵确定的二叉树的。先序+中序–>构造二叉树下面我们分别来看一下,根据先序+中序遍历的顺序,如何恢复一棵二叉树,代码如下://首先采用递归的方式
public Tre...
分类:
其他好文 时间:
2016-05-25 13:28:22
阅读次数:
230
已知两种遍历序列求原始二叉树 算法思想: 需要明确的前提条件 通过先序和中序可以求出原始二叉树 通过中序和后序可以求出原始二叉树 但是通过先序和后序无法还原出二叉树 换种说法: 只有通过先序中序或者后序中序才可以确定一个二叉树 先来看一个例子,已知先序遍历序列和中序遍历序列求后序遍历: 先序:ABC ...
分类:
其他好文 时间:
2016-05-16 12:48:35
阅读次数:
194
二叉树的镜像:先序遍历二叉树,若有子节点,则交换子节点。(1)递归实现(2)非递归实现,循环实现,利用栈#include<iostream>
#include<stdlib.h>
#include<assert.h>
#include<stack>
usingnamespacestd;
structBinaryTreeNode
{
BinaryTreeNode(i..
分类:
其他好文 时间:
2016-05-15 19:59:29
阅读次数:
136
poj2255-给出二叉树的先序遍历和中序遍历,求后序遍历
reference:
1. http://blog.csdn.net/cbs612537/article/details/8530294
2. http://blog.csdn.net/mtawaken/article/details/7352328
解题思路:
用迭代的思想,先序遍历的第一个为根节点,将中序遍历分为左右子树。...
分类:
其他好文 时间:
2016-05-12 12:07:23
阅读次数:
190
二叉树先序遍历;(1)先序访问根节点(2)先序访问左子树(3)先序访问右子树二叉树中序遍历;(1)中序访问根节点(2)中序访问左子树(3)中序访问右子树二叉树后序遍历;(1)后序访问根节点(2)后序访问左子树(3)后序访问右子树测试用例:inta[10]={‘1‘,‘2‘,‘3‘,‘#‘,‘#..
分类:
其他好文 时间:
2016-05-12 00:04:26
阅读次数:
332
重建二叉树 时间限制:1000 ms | 内存限制:65535 KB 难度:3 重建二叉树 时间限制:1000 ms | 内存限制:65535 KB 难度:3 ...
分类:
其他好文 时间:
2016-05-10 20:46:46
阅读次数:
599