数据结构--数组存储二叉树(Java) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 顺序存储二叉树的特点 顺序二叉树通常只考虑完全二叉树 第n个元素的左子节点为 2 * n + 1 第n个元素的右子节点为 2 * n + 2 ...
分类:
编程语言 时间:
2020-08-05 13:11:12
阅读次数:
68
题目描述 求给定的二叉树的前序遍历。 例如: 给定的二叉树为{1,#,2,3}, 1 \ 2 / 3 返回:[1,2,3]. 备注;用递归来解这道题太没有新意了,可以给出迭代的解法么? /** * struct TreeNode { * int val; * struct TreeNode *lef ...
分类:
其他好文 时间:
2020-08-05 13:09:09
阅读次数:
71
题目描述: 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例 : 给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意:两结点之间的路径 ...
分类:
其他好文 时间:
2020-08-05 10:32:26
阅读次数:
55
前序遍历+重赋值 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(i ...
分类:
其他好文 时间:
2020-08-02 17:34:21
阅读次数:
91
题目描述 给定一个二叉树和一个值sum,判断是否有从根节点到叶子节点的节点值之和等于sum的路径, 例如: 给出如下的二叉树,sum=22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1 返回true,因为存在一条路径5->4->11->2的节点值之和为22 Given a ...
分类:
其他好文 时间:
2020-08-01 12:30:47
阅读次数:
70
可持久化线段树(主席树) 单点修改 ? 1.单点修改时,我们考虑将包含该点$k$的线段树节点新建出一条链。(就像这样) 每次修改将创造出$logn$个新节点。 ? ? 2.修改完的线段树不再是一颗完全二叉树,我们不能直接用层次编号,而是直接改为记录左右子节点的编号。大概的意思就是:不能用$o << ...
分类:
其他好文 时间:
2020-07-30 21:49:21
阅读次数:
69
一、索引的本质 没有索引的sql是没有灵魂的,查询速度是非常慢的。 本质:索引是帮助MySql快速获取数据的排好序的数据结构。 二、 索引数据结构: 二叉树 :层级太高,自增主键索引甚至退化成了链表 红黑树 :红黑树是平衡二叉树的一种,相对于二叉树好点,但是当数据大时,层级还是很高,查询速度慢。 H ...
分类:
数据库 时间:
2020-07-30 21:44:40
阅读次数:
80
1、完全二叉树(complete binary tree)的定义 若设二叉树的深度为h,除第h层外,其他各层(1到h-1)的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树 2、满二叉树的定义(full binary tree) 满二叉树的节点要么是叶子节点,度为0,要么是 ...
分类:
其他好文 时间:
2020-07-30 16:55:10
阅读次数:
78
题目引出的思考: 前面学习中,一般都是需要前序+中序或者后序+中序才能构建出一颗二叉树,故本道题中一开始并未给出中序遍历,心中疑惑便出,是否该二叉树不唯一?再细看是二叉排序树,仔细分析显然可得二叉排序树中的中序遍历必然是递增的,故排除自己的错误想法。 证明: 如果一棵非空二叉树(所有结点值均不相同) ...
分类:
编程语言 时间:
2020-07-30 14:49:05
阅读次数:
129
AcWing 838. 堆排序 #include <bits/stdc++.h> using namespace std; const int N=1e6+10; int h[N],num; void down(int u){ int t=u; if(u*2<=num&&h[u*2]<h[t]) t ...
分类:
编程语言 时间:
2020-07-30 14:25:51
阅读次数:
68