![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
Nigtunt
这个作者很懒,什么都没留下…
展开
-
数据结构-哈夫曼编码java实现
1.哈夫曼编码是一种可变字长编码如果一组编码中任一编码都不是其他任何一个编码的前缀,我们称这组编码为前缀编码。哈夫曼树可用于构造最短的不等长编码方案。2.算法流程(1)根据给定的n个权值{w1,w2,w3…,wn}构成n棵二叉树的集合F={T1,T2,…Tn},其中每棵二叉树Ti中只有一个带权为wi的根结点,其左右子树均空。(2)在F中选取两棵根结点的权值最小的树作为左右子树构造一棵新的二...原创 2019-12-21 15:49:46 · 1086 阅读 · 1 评论 -
数据结构-红黑树-java实现红黑树
什么是红黑树?红黑树为一种特殊的二叉查找树,但相较于二叉查找树,红黑树自平衡的二叉查找树。红黑树和二叉平衡树的区别1、红黑树放弃了追求完全平衡,追求大致平衡,在与平衡二叉树的时间复杂度相差不大的情况下,保证每次插入最多只需要三次旋转就能达到平衡,实现起来也更为简单。2、平衡二叉树追求绝对平衡,条件比较苛刻,实现起来比较麻烦,每次插入新节点之后需要旋转的次数不能预知。所以红黑树有着比二叉平...原创 2019-12-02 12:09:37 · 550 阅读 · 4 评论 -
数据结构-平衡二叉搜索树-java实现平衡二叉搜索树添加和删除节点
为什么要创建平衡二叉搜索树当一个二叉搜索树每个结点的C(i)为该结点的层次数。最坏情况下,当先后插入的关键字有序时,构成的二叉排序树蜕变为单支树,树的深度为其平均查找长度(n+1)/2(和顺序查找相同),最好的情况是二叉排序树的形态和折半查找的判定树相同,其平均查找长度和log 2 (n)成正比。所以要创建一个尽量平衡的树降低查找时间复杂度平衡二叉搜索树的数据结构平衡二叉树定义(AVL)...原创 2019-11-17 23:42:35 · 511 阅读 · 0 评论 -
数据结构-二叉树-二叉搜索树
一、什么是二叉搜索树二叉搜索树本质还是二叉树,但它在不空时添加节点,它左子树上所有的元素都小于根节点的元素,而根节点右子树上所有的元素都大于根节点的元素。通过以上方法建的树的中序遍历是从小到大的序列,所以二叉搜索树又称之为二叉排序树。二、二叉搜索树的基本操作2.1二叉搜索树插入节点由于二叉搜索树仍然是二叉树,所以先建立二叉树类public class tree { priva...原创 2019-11-17 22:20:34 · 700 阅读 · 0 评论 -
二叉搜索树的后序遍历序列-牛客网剑指offer
二叉搜索树的后序遍历序列题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路(1)题中首先给出了一数组并要求判断是不是二叉搜索树的后序遍历结果,那么可知,如果他真的时一个二叉搜索树的后序遍历结果,那么对这个数组排序之后得到的一定是这个二叉搜索树的中序遍历结果。(2)现在就相当于已知了一个二叉...原创 2019-11-11 18:43:57 · 349 阅读 · 0 评论 -
数据结构-二叉树-二叉树的前序、中序、后序遍历(通过递归与非递归方法实现)、层序遍历
首先创建树类public class tree { private Object data; private tree left; private tree right; public Object getData() { return data; } public void setData(Object data) { ...原创 2019-11-08 17:50:15 · 383 阅读 · 0 评论