void PreOrder(TreeNode *root) { TreeNode *p = root; stack s; while (!s.empty() || p) { while (p) { cout val left; } if (!s.empty()) { p = s.top(); s.p... ...
分类:
其他好文 时间:
2017-09-18 17:26:13
阅读次数:
146
闲来无事,重看了《数据结构》一书,突然发现其中的很多代码写的很精妙,以下就是我对二叉树一部分的做的记录。一般遍历就是使用前序、中序、后序三种遍历,我自己平时都是使用递归算法,今天看书才发现递归算法不是最优解,因为函数调用栈层层叠加,还要保存函数的返回地址,实际参数传递,创建局部变量等等。 一、二叉树 ...
分类:
编程语言 时间:
2017-08-31 21:09:23
阅读次数:
2417
Given inorder and postorder traversal of a tree, construct the binary tree. Note:You may assume that duplicates do not exist in the tree. 题目标签:Array, ...
分类:
其他好文 时间:
2017-08-27 11:12:14
阅读次数:
133
Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume that duplicates do not exist in the tree. 题目标签:Array, T ...
分类:
其他好文 时间:
2017-08-27 10:01:19
阅读次数:
107
MIUI面试 一面: 数据结构+算法: 斐波那契数列:非递归-迭代 1MB内存。外存-100W整数。排序,O(1)-位图法 设计模式: 代理模式:OO C++: 混合编程,加什么。为什么 虚函数表 二面: 数据结构+算法: 快排 二叉树遍历 设计模式: 单例模式-多线程: 其它: 关系数据库的特性 ...
分类:
移动开发 时间:
2017-08-20 12:35:49
阅读次数:
168
前序遍历的非递归:1、在入栈时增加结果集,不停的取左子树入栈。直到为空。2、假设栈非空,pop栈顶结点。取其右子树作为当前结点,继续第一步。直到栈为空 中序遍历的非递归:1、在入栈时,不停的取左子树入栈,直到为空。2、假设栈非空,pop栈顶结点,增加结点集,取其右子树作为当前结点。继续第一步。直到栈 ...
分类:
其他好文 时间:
2017-08-20 10:06:50
阅读次数:
151
A:树遍历 DFS 贪心 先从最远的点开始判 如果某个点连有的算上自身的junction不小于二就ans++ return 0 连有的算上自身的junction为一 就return 1 #include <bits/stdc++.h> #include <cstring> #include <ios ...
分类:
其他好文 时间:
2017-08-10 23:39:11
阅读次数:
147
类似 二叉树遍历到根节点path,也类似深度优先搜索 首先保持一个result的vector<vector>,是引用类型。 声明一个保持中间结果的vector,这个vector 始终在变化,在递归中使用 每次让target-candidates[i],将candidate[i]加入temp中 如果t ...
分类:
其他好文 时间:
2017-08-09 17:27:16
阅读次数:
173
index seek和index scan 提高sql 效率解释解释index seek和index scan:索引是一颗B树,index seek是查找从B树的根节点开始,一级一级找到目标行。index scan则是从左到右,把整个B树遍历一遍。假设唯一的目标行位于索引树最右的叶节点上(假设是非聚 ...
分类:
数据库 时间:
2017-08-09 10:01:57
阅读次数:
179
遍历Dom树,可以返回当前页面有那些元素及其数量 ...
分类:
其他好文 时间:
2017-08-08 21:41:49
阅读次数:
120