才疏学浅,智商不够,花了一晚上看了二叉树。记录一下: 1.二叉树的遍历 前序遍历:根节点->左子树->右子树 中序遍历:左子树->根节点->右子树 后序遍历:左子树->右子树->根节点 三层二叉树: A ↙ ↘ B C ↙ ↘ ↙ ↘ D E F G前序:先把BDE,CFG看做是A的左右子节点,因此 ...
分类:
编程语言 时间:
2018-12-27 03:05:36
阅读次数:
181
从中序与后序遍历序列构造二叉树 根据一棵树的中序遍历与后序遍历构造二叉树。 注意:你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7,20,3] 返回如下的二叉树: 3 / \ 9 20 / \ 15 ...
分类:
其他好文 时间:
2018-12-23 11:27:46
阅读次数:
262
bzoj 5249 [2018多省省队联测] IIIDX "Link" Solution 首先想到贪心,直接按照从大到小的顺序在后序遍历上一个个填 但是这样会有大问题,就是有相同的数的时候,会使答案不优 比如考虑 $(1, 2)(1, 3)(2, 4)$ 这样一棵树,并且点权是 ${1,1,1,2} ...
分类:
其他好文 时间:
2018-12-21 22:40:10
阅读次数:
224
第七部分:小插曲,Deferred 你可以从这里从头开始阅读这个系列 回调函数的后序发展 在第六部分我们认识这样一个情况:回调是Twisted异步编程中的基础。除了与reactor交互外,回调可以安插在任何我们写的Twisted结构内。因此在使用Twisted或其它基于reactor的异步编程体系时 ...
分类:
其他好文 时间:
2018-12-19 19:40:00
阅读次数:
145
二叉树的遍历 例如,将中缀表达式(a+b)/c d+e f表示为二叉树 前序遍历 前缀表达式(波兰式) 根节点 左子树 右子树 示例二叉树的前序遍历 + /+abcd ef 特点:第一位一定是根节点 中序遍历 中缀表达式 左子树 根节点 右子树 找到根节点后,在其左侧的都是左子树下的结点,在其右侧的 ...
分类:
其他好文 时间:
2018-12-14 22:49:02
阅读次数:
179
Java数据结构和算法(二)树的基本操作 一、树的遍历 二叉树遍历分为:前序遍历、中序遍历、后序遍历。即父结点的访问顺序 1.1 前序遍历 基本思想:先访问根结点,再先序遍历左子树,最后再先序遍历右子树即根—左—右。图中前序遍历结果是:1,2,4,5,7,8,3,6。 1.2 中序遍历 1.3 后序 ...
分类:
编程语言 时间:
2018-12-11 11:17:10
阅读次数:
220
创建满二叉树,分别使用深度优先和广度优先进行遍历;二叉树遍历:前序遍历、中序遍历、后序遍历、层次遍历;广度优先爬虫示例。
分类:
其他好文 时间:
2018-12-09 23:39:40
阅读次数:
323
思路1:可以用建树来做 由于是先序遍历,所以直接先序建树就行了。 #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int maxn = 12000; int a[maxn],n,num; ...
分类:
其他好文 时间:
2018-12-06 22:25:54
阅读次数:
168
前序非递归遍历 中序非递归遍历 后序非递归遍历 要保证根结点在左孩子和右孩子访问之后才能访问,因此对于任一结点P,先将其入栈。如果P不存在左孩子和右孩子,则可以直接访问它;或者P存 在左孩子或者右孩子,但是其左孩子和右孩子都已被访问过了,则同样可以直接访问该结点。若非上述两种情况,则将P的右孩子和左 ...
分类:
其他好文 时间:
2018-12-06 20:49:31
阅读次数:
149
当我们需要序列化多个对象的时候,可以采用集合把多个对象放到集合中,然后序列化整个集合。 而我们要反序列化的时候,就使用集合接收反序列化后的对象 如: ...
分类:
编程语言 时间:
2018-12-06 15:26:01
阅读次数:
295