61、请实现两个函数,分别用来序列化和反序列化二叉树。 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过某种符号表示空节点( ...
分类:
其他好文 时间:
2019-08-18 11:40:02
阅读次数:
98
题目描述 二叉树是每个内部结点最多只有两个子结点且两个子结点有序的树。如下图就是一棵二叉树: 对于一棵二叉树,有三种基本遍历方式: 1.前序遍历:先访问根结点,然后再前序遍历左子树,最后前序遍历右子树; 2.中序遍历:先中序遍历左子树,然后访问根结点,最后中序遍历右子树; 3.后序遍历:先后序遍历左 ...
分类:
编程语言 时间:
2019-08-11 15:20:53
阅读次数:
102
题目描述 "链接" 给定后序和中序,求层序结果 分析 递归实现,这里给出先序和后序,求中序的 递归:考虑中间过程 先序$[preL,preR]$ 中序$[inL,inR]$ 根节点:$preL$ 中序根节点:$k,a[k]==a[preL]$ 遍历可得到 中序左子树结点个数:$k inL$ ,左子树 ...
分类:
其他好文 时间:
2019-07-29 21:31:48
阅读次数:
103
题意 给出一个n位序列 a 有m个询问 l r 问在al -ar 之间能选取的最大周长的三角形 比赛的时候 用莫队算法 但是一直超时 (感觉时间复杂度不是特别高呀。。。) 可以用主席树遍历区间最大到最小来找三角形 #include<bits/stdc++.h> using namespace std ...
分类:
其他好文 时间:
2019-07-25 00:34:13
阅读次数:
95
https://blog.csdn.net/notonlyrush/article/details/80207508 层序遍历 前序遍历 递归实现: 非递归实现: 中序遍历 递归实现 非递归实现 后序遍历 递归实现 非递归实现 ...
分类:
其他好文 时间:
2019-07-19 12:15:54
阅读次数:
82
三种遍历的基本思想 先序遍历:根节点 -> 左子树 -> 右子树 中序遍历:左子树 -> 根节点 -> 右子树 后序遍历:左子树 -> 右子树 -> 根节点 如,以下二叉树遍历: 先序遍历结果:1 2 4 5 7 8 3 6 中序遍历结果:4 2 7 5 8 1 3 6 后序遍历结果:4 7 8 5 ...
分类:
其他好文 时间:
2019-07-16 18:16:09
阅读次数:
105
主要内容: 1. 二叉树遍历(先序、中序、后序、宽度优先遍历)的迭代实现和递归实现; 2. 二叉树的深度,二叉树到叶子节点的所有路径; 首先,先定义二叉树类(python3),代码如下: 内容1:二叉树的遍历 二叉树的遍历分深度优先遍历(DFS)和宽度优先遍历(BFS)。其中深度优先遍历又分为先序遍 ...
分类:
编程语言 时间:
2019-06-25 16:42:49
阅读次数:
110
1.前序遍历 前序遍历(DLR,lchild,data,rchild),是二叉树遍历的一种,也叫做先根遍历、先序遍历、前序周游,可记做根左右。前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。 前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左 ...
分类:
其他好文 时间:
2019-06-17 01:23:09
阅读次数:
128
排序二叉树 排序二叉树要求父节点的值大于左节点的值,小于有节点的值。 没有父亲节点的节点称为根节点,没有子节点的节点称为叶子节点,其他都称为中间节点。 用JS实现一个排序二叉树 遍历方式 1. 前序遍历(中间节点→左节点→右节点) 2. 中序遍历(左节点→中间节点→右节点) 3. 后序遍历(左节点→ ...
分类:
编程语言 时间:
2019-06-15 13:37:54
阅读次数:
107
一、定义 二叉排序树 又称作 二叉查找树 ,它是一种对排序和查找都很有用的特殊二叉树。二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)它的左、右子 ...
分类:
编程语言 时间:
2019-06-12 09:21:22
阅读次数:
140