算法和数据结构
houdezaiwu1
这个作者很懒,什么都没留下…
展开
-
不相交集类应用 生成迷宫
package demo.ch1;import javax.swing.*;/**Created by Administrator on 2019/9/27.*/public class CollectS extends JFrame{Demo [] S = new Demo[25];;// 构造初始的,先默认都加上下和右墙public CollectS() {for (in...原创 2019-10-12 21:55:44 · 271 阅读 · 0 评论 -
二叉树系列(一)------基本二叉树实现+3种遍历方式代码
概念二叉树是树的一种,其中每个节点都不能有多于两个儿子;平均深度为 O(N)O(\sqrt{N})O(N);最坏深度 N−1N-1N−1一般二叉树ABC最坏二叉树ABC可以看到,上面都是二叉树,最坏的深度达到了 N−1N-1N−13种遍历方法定义一个二叉树ABCDEFGHI前序遍历:根节点–>左子节点–>右子节点中序遍历:左子节点–>根节点–>右...原创 2019-05-31 09:31:52 · 120 阅读 · 0 评论 -
优选队列(堆)------二叉堆
前言譬如打印机打印作业的操作,一般是放到队列中,按照先后的顺序来,但是总有一些操作时间的短的,如果排的比较靠后,也要等好长时间,我们希望这些花费时间短的能够优先操作,这就需要队列特殊的处理,我们称为优先队列(priority quenue)。我们将讨论:优先队列ADT的有效实现优先队列的使用‘优先队列的高级实现1. 二叉堆二叉堆的使用对于优先队列的实现相当普遍,像二叉树一样,它也...原创 2019-06-05 11:47:06 · 223 阅读 · 0 评论 -
散列表
1 前言散列表(hash table)ADT,常常叫做散列(hashing),基本结构是数组+链表,是一种用于以常数平均时间 O(1)O(1)O(1) 执行插入 ,删除和查找的技术,排序不会得到有效的支持,诸如findMin和findMax都是散列不支持的。通多key --value 进行存储数据,key作为关键字,通过散列函数分布到数组,value则插入到关键字对应的位置的数据结构中。2 ...原创 2019-06-12 16:24:28 · 154 阅读 · 0 评论 -
二叉树系列(二)------ 二叉查找树代码实现
概念二叉查找树是一种有序的存储结构,对于每个节点XXX,它的左子树中所有节点小于X中的项,右子树所有节点大于X中的项每个节点最多两个孩子本例中,说明下这种树结构的几种实现contains方法findMin和findMaxinsertremove下面就是一个二叉查找树1234568实现思路1. contains方法在树 TTT 中,查找 XXX,如果 存在,返回true...原创 2019-06-01 14:16:58 · 606 阅读 · 0 评论 -
二叉树系列(三)------AVL树(平衡二叉树)
一 定义平衡二叉树,又称AVL树,它是一种特殊的二叉排序树。AVL树或者是一棵空树,或者是具有以下性质的二叉树:深度是 O(logN)左右子树的高度差的绝对值不能大于1左右子树都是平衡二叉树如下图所示:二 不平衡出现的情况如上图中所示,按照二叉树方式插入,总会造成不平衡,如果从A 几点出现不平衡,有四种情况:1 对 A 的左儿子的左子树进行一次插入,记为 LL;2 对...原创 2019-06-02 19:17:48 · 248 阅读 · 0 评论 -
B+树的原理
前言B树的引入主要是由于 当 把数据储存到磁盘上,由于访问磁盘的IO时间是限制速度的主要原因,大 OOO 模型不在适用,这个时候减少磁盘 IOIOIO 次数是主要要考虑的,我们希望把次数减少到一个非常小的常数。将 AVL 树改造成有多个分支的,那么树的高度就小了,访问 的 IOIOIO 次数也会减少,这是个不错的选择,通常 一颗MMM 阶的完全二叉树的高度大约为 logMNlog{_M}^Nl...原创 2019-06-03 18:01:18 · 2388 阅读 · 0 评论