原题链接:https://oj.leetcode.com/problems/binary-tree-postorder-traversal/
题目大意:后序遍历二叉树
解题思路:后序遍历二叉树的步骤:后序遍历二叉树的左子树,后序遍历二叉树的右子树,访问根结点。非递归实现时,用一个栈模拟遍历过程。由于访问完左子树后访问右子树,栈中元素要起到转向访问其右子树的作用,但是不能像先序和中序遍历那样出栈...
分类:
其他好文 时间:
2014-12-16 11:53:41
阅读次数:
183
二叉树的遍历方式基本就是前序遍历,中序遍历,后序遍历和层次遍历。从代码的角度来说,前三种最简单的就是用递归了,代码会非常简洁。但是递归有一个缺陷,就是当二叉树的节点非常多的时候,层次深的递归会不停的进行程序的压栈和出栈操作,效率比较低。这里就不写递归算法了,只写四种遍历的非递归算法。
先定义二叉树的节点如下:
/**
* Definition for binary tree
* pub...
分类:
编程语言 时间:
2014-12-15 13:47:08
阅读次数:
305
http://www.acmerblog.com/distance-between-given-keys-5995.htmllca在后序遍历中找,tralian算法还不会,懂了再补充有了lca就好求路径了,做差而已了。//=======================================...
分类:
其他好文 时间:
2014-12-15 06:29:56
阅读次数:
239
1、二叉树定义
typedef struct BTreeNodeElement_t_ {
void *data;
} BTreeNodeElement_t;
typedef struct BTreeNode_t_ {
BTreeNodeElement_t *m_pElemt;
struct BTreeNode_t_ *m_pLeft;
struct BTr...
分类:
其他好文 时间:
2014-12-14 22:45:45
阅读次数:
226
输入一棵二叉树的先序遍历序列和中序遍历序列,输出它的先序遍历、中序遍历、后序遍历和广度优先遍历序列...
分类:
其他好文 时间:
2014-12-14 20:00:52
阅读次数:
251
实现后序遍历递归:/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(...
分类:
其他好文 时间:
2014-12-13 23:07:58
阅读次数:
165
1 #include 2 #include 3 4 const int maxn = 100; 5 6 int n; 7 char a[maxn], b[maxn]; 8 9 void dfs(int la, int ra, int lb, int rb) {10 if (la ...
分类:
其他好文 时间:
2014-12-12 14:51:04
阅读次数:
99
原文: 一步一步写算法(之二叉树深度遍历) 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 深度遍历是软件开发中经常遇到的遍历方法。常用的遍历方法主要有下面三种:(1)前序遍历;(2)中序遍历;(3)后序遍历。按照递归的方法,这三种遍历的方法其...
分类:
编程语言 时间:
2014-12-11 10:11:35
阅读次数:
224
其中前序和中序,简单且容易理解。后序遍历有难度。
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct BiNode
{
char data;
struct BiNode *lchild,*rchild;
}BiNode,*...
分类:
其他好文 时间:
2014-12-10 16:27:47
阅读次数:
230
是#include
using namespace std;
//排序二叉树的性质
/*
*.终止条件:1.开始>=结尾返回真
*. 2.s >= e 因为不出现问题的话,一定能到达 s>=e的情况。知道到达了s >= e即为真
*.
1.最后一个节点是root
2.在root之前的节点 连续的大于root的是其右子树, 再之前连续小于root的...
分类:
编程语言 时间:
2014-12-09 17:51:32
阅读次数:
174