数据结构
文章平均质量分 63
金华市的小梁
这个作者很懒,什么都没留下…
展开
-
AVLTree
平衡二叉树二叉查找树的问题当我们依次添加n个有序键值对的时候,二叉查找树的高度为n,这样就大大降低了查找的效率,因为每次查找还要判断每个结点中一个空的链接,甚至比单链表还要慢,为了解决这个问题,我们希望构造的二叉查找树的高度为~lgN,这就是我们要说的平衡二叉树。简单介绍1)平衡二叉树也叫做平衡二叉查找树(Self-balancing binary search tree)又称为AVL树,可以保证查询效率高。2)具有以下特点:它的左右两个子树的高度差绝对值不超过1,并且两个子树都是平衡二叉树。平衡原创 2021-04-11 15:57:42 · 130 阅读 · 0 评论 -
BinarySearchTree
1.二叉查找树定义BST是一棵二叉树,其中的每一个结点都含有一个Comparable的键(以及相关联的值)且每个结点的键都大于左子树中的任意结点的键和大于右子树中任意结点的键。2.基于二叉查找树的符号表public class BinarySearchTree<Key extends Comparable<Key>,Value> { TreeNode root = null;//保存根结点 //删除结点方法 public void delete(Key key)原创 2021-04-08 21:13:25 · 99 阅读 · 0 评论 -
线索化二叉树的建立与遍历
线索化二叉树基本介绍1)具有n个节点的二叉链表中有(2n - (n - 1))= n + 1 个空指针域,利用空指针域存放指向该节点某种遍历次序下的前驱结点和后继节点的指针,这种附加的指针称为线索。2)这种加入了线索的二叉链表叫做线索链表,相应的二叉树叫做线索二叉树(Threaded BinaryTree)。线索二叉树根据遍历的顺序可以分为三种:前序搜索二叉树、中序搜索二叉树、后序搜索二叉树。3)一个节点的前一个节点,成为前驱结点。4)一个节点的后一个节点,成为后继节点。代码实现为了区分当前原创 2021-04-04 17:02:23 · 184 阅读 · 0 评论 -
哈夫曼树的简介与创建
哈夫曼树哈夫曼树的几个重要概念1)路径和路径长度:在一棵树中,从一个结点可以到达孩子结点或孙子结点之间的通路,叫做路径,通路中分支的数目成为路径的长度。若规定根结点的层数为1,则从根结点到第n层的路径长度为 n - 1。2)结点的权及带权路径长度:若赋给树种结点一个含有某种意义的数值,则这个数值称为结点的权。结点的带权路径长度为:从根结点到该结点的路径长度与权的乘积。3)树的带权路径长度:树的带权路径长度规定为所有叶子结点的带权路径长度之和,记为WPL(weighted path length),权原创 2021-04-05 18:27:24 · 253 阅读 · 3 评论