数据结构
不写作的作家
这个作者很懒,什么都没留下…
展开
-
自平衡二叉查找树总结
1.概念 在介绍自平衡二叉查找树之前,先说一下二叉树,这里就简单列一下概念来自《数据结构和算法分析》 二叉树:是一棵树,每个节点不能多于两个儿子 二叉查找树:树中所有项都可以被排序,即树中每个节点x,它的左子树所有项都小于x,它的右子树所有项都大于x。 自平衡的二叉查找树:根据某些平衡条件保证树的深度(avl和红黑树) 2AVL树 AVL树严格保障树的高度达到某种条件:左子树和右子树高度相差不能大于1。但是每次插入或者删除的时候都有可能破坏平衡条件,解决的方法是树的旋转。 树的旋转 1.左旋原创 2020-07-02 14:43:57 · 179 阅读 · 0 评论 -
二叉堆学习总结
1二叉堆基本性质 1.二叉堆用数组表示,对于任意位置i上面的元素,左儿子的位置是2i,右儿子的位置是2i+1。所以每个节点的父亲位置是在i/2s上面。如下图(来自数据结构与算法分析) 2.根节点永远小于叶子节点,或者说,在一个堆中,对于每一个节点X,X的父亲中的关键字小于X中的关键字,根节点除外(它没有父亲)。 2二叉堆基本操作 1添加(插入) 在下一个位置创建一个空穴,判断空穴的父亲是否大于插入的元素,如果是,则交换位置。如果不是,返回此处位置,将插入元素放入此位置之中。如图在树中插入元素14: 代码原创 2020-05-09 11:19:46 · 170 阅读 · 0 评论 -
数据结构散列自学笔记1
数据结构-散列散列数据结构的目的散列的一些定义散列函数的选择关键字为整数关键字为字符串解决冲突的方式分离连接法 散列数据结构的目的 常数时间进行插入,删除,查找的结构。但是会丢失任何元素的排序,以及位置的信息。在后面我将用自己的几种实现来测试常数时间的运行。 散列的一些定义 散列表:固定大小的数组,来存储数据,每个数据有对应的关键字来进行查找,每个存放的数据通过关键字映射到散列表进行存储 散列函数...原创 2019-03-11 17:06:58 · 230 阅读 · 0 评论