数据结构13—二叉搜索树,堆 二叉树 二叉树的定义 1. Binode的模版——递归定义法 2. Binode接口实现 3. BinTree模版 二叉搜索树 二叉搜索树search 测试用例举例: [4,2,7,1,3] 2 二叉搜索树的插入 递归 此递归代码和老师讲的稍微有所不同,需要返回的是整个 ...
分类:
其他好文 时间:
2020-04-25 01:22:54
阅读次数:
94
本质上是一种完全二叉树 分为两个类型: 1.最大堆: 所有父节点的值都大于左右孩子节点的值 2.最小堆:所有父节点的值都小于左右孩子节点的值 二叉堆根节点叫堆顶 1.二叉堆的自我调整 自我调整就是把不符合堆性质的完全二叉树调整成一个堆。 1.插入节点(最小堆举例) 插入时insert到最后一个节点 ...
分类:
其他好文 时间:
2020-04-24 18:44:14
阅读次数:
51
什么是堆 1.所有 父节点 的值 都大于 (小于)子节点 的 值 2.属于完全 二叉树 堆排序思路 1.先定义一个调整堆的函数, 保证以 某点为 父节点进行调整, 并且保证 不 打乱 子节点 以下的 子树的 堆结构 , 所以 用到 递归思想 2.从头遍历 到 树尾, 先进行 首尾交换, 再进行 构建 ...
分类:
编程语言 时间:
2020-04-21 09:31:21
阅读次数:
81
一 1 数据结构与算法定义:数据结构主要是指 一组数据的存储结构,算法是指的是操作数据的一组方法。就行图书馆书籍存储是按照编号或种类来存储,算法就是你可以 一本本来找,可以分类来找,这些找的方法就是算法。 要基本掌握的一些知识: 有 10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、 ...
分类:
编程语言 时间:
2020-04-01 23:21:27
阅读次数:
98
"二叉树" "234树" "红黑树" "堆" 二叉树 二叉树每个节点都大于左子节点,小于右子节点。 平衡二叉树 二叉树进行更新操作后可能导致不平衡:如图,插入10后,11节点左边高度为3,右边为1,差大于1了。就要对树进行旋转使树保持平衡。 旋转分4种情况: 如图:观察发现失衡的节点为10,新插入的 ...
分类:
其他好文 时间:
2020-03-29 23:57:49
阅读次数:
134
什么是数据结构?什么是算法 广义 数据结构:一组数据的存储结构 算法:操作数据的一组方法 例子:图书馆对书籍的分门别类存储=数据结构,查找一本书的方法=算法 狭义 著名的数据结构和算法:队列,栈,堆,二分查找,动态规划 重点:复杂度分析 10个常用的数据结构:数组、链表、栈、队列、散列表、二叉树、堆 ...
分类:
编程语言 时间:
2020-03-29 01:14:09
阅读次数:
70
二分搜索树 6-1 为什么要研究树结构 树结构 为什么要有树结构? 树结构本身是一种天然的组织结构 高效 将数据使用树结构存储后,出奇的高效。 二分搜索树(Binary Search Tree) 平衡二叉树:AVL;红黑树 堆;并查集 线段树;Trie(字典树,前缀树) 6-2 二分搜索树基础 和链 ...
分类:
其他好文 时间:
2020-02-23 20:26:55
阅读次数:
82
需要重点以下10种数据结构和10种算法: 10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树 10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法 ...
分类:
编程语言 时间:
2020-02-08 13:41:32
阅读次数:
88
还有人把Treap叫做树堆的,但是常用名还是叫做Treap的比较多。 不进行任何封装的,带求和操作的,一个节点存放多个元素的最普通的Treap。 封装了val的,速度略微下降,因为是键值对所以求和类的函数变得没什么意义。 ...
分类:
其他好文 时间:
2019-12-23 13:39:25
阅读次数:
74
刚开始学treap。。同学在台上给我们讲,貌似除我之外的机房dalao们都听懂了就我发呆。。。(滑稽) 于是,事后的窝只能自己上网翻书研究了。。。。 treap: treap=tree+heap,树+堆 也就是说,这个东西是个树,但是满足堆的性质。 前置知识: BST二叉搜索树: 度娘曰: 若它的左 ...
分类:
其他好文 时间:
2019-12-22 11:03:19
阅读次数:
90