引言 继续二叉树,这个题考的知识点是二叉树的后续遍历 分析问题 对于一个二叉树的后序遍历序列来说,最后一个数一定是根节点,然后前面的数中,从最开始到第一个大于根节点的数都是左子树中的数,而后面到倒数第二个数应该都是大于根节点的,是右子树,如果后面的数中有小于根节点的,那么说明这个序列不是二叉搜索树的...
分类:
编程语言 时间:
2015-04-30 10:18:49
阅读次数:
135
二叉树,后续遍历
#include
using namespace std;
string ans;
int n;
void build(int l,int r)
{
int mid=(r+l)/2;
if(l!=r)
{
build(l,mid);
build(mid+1,r);
}
int num0=0,num1=0;
for(int i=l;i<=r;i++)
{
...
分类:
其他好文 时间:
2015-04-29 21:47:03
阅读次数:
127
代码很短,实现起来也很简单,下面是代码:
//
// main.cpp
// PreMidgetPost
//
// Created by xin wang on 4/29/15.
// Copyright (c) 2015 xin wang. All rights reserved.
//
#include
//链表二叉树的节点类
template
class BinaryTr...
分类:
其他好文 时间:
2015-04-29 21:44:41
阅读次数:
178
题意:提供前序遍历结果,和中序遍历结果。输出后序遍历结果。最多26个节点,即从‘A’~‘Z’。思路:递归建立树,再递归后续遍历。前序遍历的结果就是做了一次DFS的结果,所以可以从左到右顺序来遍历前序序列,每遇到1个字母就以其为一个节点,建立以它为根的子树,直到该子树建立完成为止。怎么判断所建立的这个...
分类:
其他好文 时间:
2015-04-26 21:00:01
阅读次数:
182
剑平面阿里被问到这个,刚开始画了下看有什么性质,乱蒙了几个都被推翻了,初始感觉就是要O(n)的,因为印象中BST的构树都可以O(nlogn)搞定。然后剑平说最后一个数肯定是根节点,一下反应过来了,就是二分出间隔点然后两边递归判断,不过这好像还是构树的思路,可以把整棵树构造出来。然后剑平说不是二分,直...
分类:
其他好文 时间:
2015-04-21 23:58:58
阅读次数:
299
package algorithm01;import java.util.Scanner;/** * 给出先序遍历和中序遍历序列求出二叉树的后续遍历序列 * @author wxisme * */public class ToReverse { public static void main(Str...
分类:
其他好文 时间:
2015-04-15 23:00:41
阅读次数:
122
前序遍历:先访问跟结点,然后遍历左子树,最后遍历右子树。即“根左右”。
实现代码:
class Solution {
public:
vector preorderTraversal(TreeNode *root) {
if (root==NULL) {
return vector();
}
vector resu...
分类:
其他好文 时间:
2015-04-07 17:49:55
阅读次数:
120
root指向一棵二叉树的头结点,p和q分别指向该二叉树中任意两个结点的指针,编写算法,找到p和q的最近公共祖先结点r。
为了不失一般性,设p在q的左边。同时,为了编写方便,将以p和q所指结点的值代替p和q本身。根据【后续遍历最后访问根节点,在递归算法中,根是压在栈底的】,很容易想到,采用后序遍历非递归算法:栈中存放二叉树结点的指针。当访问到某结点时,栈中所有的元素都是该结点的祖先。设一个辅助栈,当没...
分类:
其他好文 时间:
2015-04-04 21:18:20
阅读次数:
150
题目:
Given inorder and postorder traversal of a tree, construct the binary tree.Note:
You may assume that duplicates do not exist in the tree.
根据二叉树的中序遍历和后续遍历结果构造二叉树。思路分析:
这道题和上道题《 Leetcode: Constr...
分类:
其他好文 时间:
2015-04-04 00:02:22
阅读次数:
180
算法流程:
主要分为四步:
1.当前字符为数字或者字母,则直接输出
2.当前字符为),则在栈中匹配输出,一直匹配到),则停止输出(就是将)及其顶上的元素全部弹出来输出)
3.当前字符为操作符,则比较当前字符的入栈优先级(icp)和字符栈内优先级(isp),如果icp
4.当前字符为空,则将栈中元素依次弹出输出
百度...
分类:
编程语言 时间:
2015-03-31 12:51:26
阅读次数:
159