
数据结构
路先生的杂货铺
【坚持做优快云的一股清流】学习如逆水行舟,不进则退。今天不努力,明天变垃圾。
展开
-
Java 单链表知识点总结及代码实现
JAVA实现单链表本文通过JAVA实现单链表的基本功能实现功能单链表的:头部增加、头部删除尾部增加、尾部删除增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;全新的 KaTeX数学公式 语法;增加了支持甘特图的mermaid语法1 功能;增加了 多屏幕编辑 Markdown文章功能;增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能...原创 2019-09-27 12:41:08 · 840 阅读 · 0 评论 -
【数据结构】 赫夫曼树与赫夫曼编码
赫夫曼树一、什么是赫夫曼树?如果给出一个学生的成绩从百分之转化为五级制,若使用ifelse则代码过于冗余,我们可以使用赫夫曼树的形式完成它:但是出于查找更高效的考虑,我们可以将树构建成这样:这样效率又高了不少。二、赫夫曼树的定义与原理我们将上面这颗二叉树简化成带权二叉树:从树中一个节点到另一个节点之间的分支构成两个节点之间的路径,路径上的分支数目称做路径长度。 如a中根节点到D的路径长度为4,b中到D的路径长度为2树的路径长度就是从树根到每一节点的路径长度之和。 a的树路径长度就为1+原创 2020-09-30 19:45:50 · 1332 阅读 · 0 评论 -
AVL树详解
AVL树1 AVL树的定义假设有一有序数组 1 2 3 4 5 6 7 8 9依次插入BST树,那么我们会发现这是一颗一直向右倾斜的树,已经成了链表形式。那么这样就失去了BST树的优势,原先 O(log2n)O(\log_2n)O(log2n)的效率就会变成 O(n)O(n)O(n),为了避免这种情况,AVL树(平衡二叉查找树)是在BST树的基础上,引入了节点的高度属性,加入了平衡的要求:...原创 2020-04-17 22:00:25 · 2132 阅读 · 0 评论 -
二叉树与BST树详解 附java实现代码
文章目录二叉树与BST树1. 二叉树1.1 二叉树的定义1.2 二叉树的相关术语1.3 二叉树的性质1.4 二叉树的遍历2. BST树2.1. BST树定义2.2 BST树的增删查功能2.2.1 BST树的查询2.2.2 BST树的增加2.2.3 BST树的删除2.3 BST树的遍历2.3.1 前序遍历2.3.2 中序遍历2.3.3 后序遍历2.3.4 层序遍历2.4 BST树的性能分析...原创 2020-02-25 23:48:30 · 889 阅读 · 0 评论