一.二叉树 1.满二叉树 高度为h,由2的h次-1个节点构成的二叉树称为满二叉树 2.完全二叉树 高度为h,除第h层外,其它各层节点数都到达最大节点数。且第h层的节点都连续集中在最左边 二.二叉查找树 又称二叉排序树或二叉搜索树。左子树的所有节点值均小于根节点的值,右子树所有节点值均大于根节点的值。 ...
分类:
其他好文 时间:
2020-07-04 20:29:37
阅读次数:
48
搜城探宝 (树型dp \(\star\)) \(zhclk\) 已经坚信自己就是传说中的有缘人,于是,带着梦想,带着希冀,带着勇气,来到了神迹,寻找…… 如下图,神迹的城堡是一个树形的结构,共有 \(n\) 间屋子。每间屋子都有一把锁,并且每间屋子最多可以到另外的两个屋子里(它是一棵二叉树)。在城堡 ...
分类:
其他好文 时间:
2020-07-04 13:52:53
阅读次数:
68
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回: [3,9,20,15,7] 因为是要从上到下,所以要求先进先出,先压入的一层就要先输出,所以采用队列。 从第一层开 ...
分类:
其他好文 时间:
2020-07-04 13:42:26
阅读次数:
69
1. MySQL索引引擎有两种:Innodb:聚集索引;Myisam:非聚集索引 2. MySQL 为什么不使用hash、二叉树、红黑树等作为索引的数据结构,而采用 B+ 树? 因为hash、二叉树、红黑树的高度不可控,B+ 树的高度可控,mysql 一般是3~5层。 3. 多路平衡二叉树(B+树) ...
分类:
数据库 时间:
2020-07-04 13:39:38
阅读次数:
67
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果: [ [3], [2 ...
分类:
其他好文 时间:
2020-07-04 13:25:35
阅读次数:
62
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树: root = [3,5,1, ...
分类:
其他好文 时间:
2020-07-04 01:35:27
阅读次数:
51
将有序数组转换为二叉搜索树 -- 简单 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 简单地说一下解题思路吧,平衡二叉树的特点有两个: 左子树与右子树的深度之差的绝对值不超过1; 左子树和右 ...
分类:
编程语言 时间:
2020-07-04 01:26:51
阅读次数:
77
一、二叉树的深度优先遍历 对于一颗二叉树,深度优先搜索(Depth First Search)是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。 那么深度遍历有重要的三种方法。这三种方式常被用于访问树的节点,它们之间的不同在于访问每个节点的次序不同。这三种遍历分别叫做先序遍历(preorder_t ...
分类:
编程语言 时间:
2020-07-04 01:10:49
阅读次数:
70
#include <stdio.h> #include <stdlib.h> typedef char ElemType; typedef struct BiNode{//二叉树 ElemType data; struct BiNode *lchild,*rchlid; }BiNode,*BiTre ...
分类:
编程语言 时间:
2020-07-04 01:05:11
阅读次数:
74
108. 将有序数组转换为二叉搜索树 思路 二叉搜索树的概念: 二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均 ...
分类:
编程语言 时间:
2020-07-03 23:39:43
阅读次数:
71