
树
kekeoneone
offeroffer
展开
-
多叉树
多叉树通过重新组织结点,减少树的高度,从而对二叉树实现优化。原创 2020-04-02 13:15:16 · 217 阅读 · 0 评论 -
AVL树
AVL树:为了解决二叉查找树的高度过高问题。比如1,2,3,4,5,6找起来还没有数组快,就体现不出它的优势,AVL树实际是对他的一个优化。特点:高度相差不超过1.判断高度?//高度 public int height(){ return Math.max(left==null?0:left.height(),right==null?0:right.height())...原创 2020-03-26 22:07:11 · 178 阅读 · 0 评论 -
二叉查找树
1.创建;2.遍历;3.删除:叶子结点;有一个叶子的结点(4种情况);有两个叶子结点:找到当前节点右子树的最小结点,保存它,并删除他,然后重置当前的结点的值。package com;public class BSTTree { public static void main(String[] args) { // int []arr={1,25,4,3...原创 2020-03-26 17:45:39 · 87 阅读 · 0 评论 -
哈夫曼编码
在电讯通信中的经典应用。数据无损压缩。使用哈夫曼编码;任何编码不可能是另一个编码的前缀编码,不会咋成匹配的多译性。空格01.原创 2020-03-25 22:07:31 · 183 阅读 · 0 评论 -
哈夫曼树
什么是哈弗曼树?WPL最短。创建哈夫曼树步骤:1.将数从小到大排序。2.取出根节点权值最小的两棵树。3.组成一颗新二叉树,新的二叉树的根节点是前两棵树的结点的和。4.再将新的数,以根节点的权值大小再次排序,不断重复。//为了让Node对象持续排序,实现Collections下的Comparable接口class Node implements Comparable<Node...原创 2020-03-25 12:21:13 · 91 阅读 · 0 评论 -
堆排序
大顶堆;降序小顶堆;升序排序思路;1.先构建一颗顶堆树,从最后一个非叶子结点开始。(从左至右,从上至下)2.使顶元素和最后一个元素进行交换,并再次替换形成新的顶堆。重复。 public static void heapSort(int []arr){ int temp=0; System.out.println("堆排序:"); //1.将无序序列构建成...原创 2020-03-25 11:00:56 · 82 阅读 · 0 评论 -
线索化二叉树
线索二叉树:充分利用结点的 空指针线索化后,(Node属性有left和right),有如下情况:left指向左子树,也可能指向左子树的前驱结点。right指向有子树,也可能指向右子树的后继结点。...原创 2020-03-24 17:17:52 · 92 阅读 · 0 评论 -
数组顺序存储二叉树
一般先判断 数组是否为空,然后再判断长度是否为0,因为可能报空指针异常。不初始化的时候,默认是null。所以如果在一行代码中要同时判断的时候需要这样写:if(array == null || array.length == 0)注意||是度短路,如果为空,后面就不判断了。...原创 2020-03-24 14:41:46 · 331 阅读 · 0 评论 -
树—递归遍历、查找、删除
package com;public class Node { private int id; private String name; private Node left; private Node right; public Node (int id,String name){ this.id=id; this.n...原创 2020-03-24 11:57:19 · 175 阅读 · 0 评论