题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 # -*- coding:utf-8 -*- class Solution: def VerifySquenceOfBST(self, sequenc ...
分类:
其他好文 时间:
2018-09-29 22:49:56
阅读次数:
197
在工程中,很多时候二叉树一旦建立就不会轻易改动,这样的二叉树就用于遍历,我们讲了先序遍历、中序遍历、后续遍历三种方式,都是递归完成的,在工程中,如果对一棵二叉树反复的执行遍历,效率很低,递归的效率是比较低的。 改进的做法就是将遍历的结果保存下来,下一次遍历时直接用这个结果。 在工程中另一种需求就是, ...
分类:
其他好文 时间:
2018-09-24 16:58:38
阅读次数:
144
树的遍历通常使用递归,因为它的实现更简单,代码也更容易理解。 但在面试,或者特殊的情境中会使用到迭代算法(非递归)。 此时需要使用栈去模拟函数栈调用过程。 本文将给出一段代码去实现这三种遍历 相比于传统的方式:前序遍历,中序遍历,后序遍历,使用不同的方式代码去实现,并且后续遍历更为难理解一些 可拓展 ...
分类:
其他好文 时间:
2018-09-20 11:05:20
阅读次数:
224
1、树相关概念 树:结点的有限集 结点分类:根结点、普通结点、叶子结点 结点间关系:双亲结点、孩子结点、兄弟结点 结点的度:结点的子结点个数 结点的层次:根结点所在的为第1层,依次类推 树的深度:树中最大的结点层次 2、二叉树 相关概念 二叉树:每个结点最多两棵子树,左右子树是有序的 斜树:所有结点 ...
分类:
其他好文 时间:
2018-08-12 22:21:48
阅读次数:
132
先序遍历 从最顶层开始遍历 中序遍历 从底层开始 如果没有节点返回节点的父节点 后续遍历 从最底层开始,只有当子节点遍历完后才遍历父节点 ...
分类:
其他好文 时间:
2018-08-02 12:18:54
阅读次数:
138
二叉树 二叉树的基本概念 二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree) 二叉树的性质(特性) 性质1: 在二叉树的第i层上至多有2^(i-1)个结点(i>0)性质2: 深度为k的二叉树至多有2^k - 1个结点 ...
分类:
其他好文 时间:
2018-07-26 22:15:07
阅读次数:
173
一维抢劫问题的DP方程:dp[i] = max{dp[i-1], dp[i-2] + vi}; 如果数据结构是二叉树,比较适合从下往上后续遍历 本结点的左右子结点(对应一维的dp[i-1]):dplv,dprv 子结点的子结点(对应一维的dp[i-2]):lastdplv,lastdprv 因为树不 ...
分类:
其他好文 时间:
2018-07-16 17:22:18
阅读次数:
194
中序遍历非递归逻辑 当前节点为空,打印,从栈中弹出,访问右子树 当前节点不空,入栈,继续访问左子树。 后续遍历非递归写法 很简单的思路。借助于两个栈的结构来实现。 中左右 > 中右左 >左右中 如何直观打印一颗二叉树?这个在调试的时候是很有用的。 一个节点的后继节点应该怎么找?是中序遍历中的后面的位 ...
分类:
其他好文 时间:
2018-07-01 17:49:23
阅读次数:
148
acm.hdu.edu.cn/showproblem.php?pid=1710 【题意】 给定一棵二叉树的前序遍历和中序遍历,输出后序遍历 【思路】 根据前序遍历和中序遍历递归建树,再后续遍历输出 malloc申请空间在堆,函数返回,内存不释放,需要free手动释放 【Accepted】 #incl ...
分类:
其他好文 时间:
2018-06-13 00:14:27
阅读次数:
150
1.斐波那契数列。 求第30个0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…… 2.多态 3.前序遍历中序遍历后续遍历(前序遍历也叫根 ...
分类:
其他好文 时间:
2018-05-28 22:50:45
阅读次数:
269