- 博客(13)
- 资源 (10)
- 问答 (1)
- 收藏
- 关注
原创 数据结构(十四)二叉树 —— 二叉排序树
二叉排序树(BinarySortedTree)是二叉树的另一个典型应用,之所以称之为二叉排序树,是因为这种二叉树结构在创建的时候遵循一些特殊的规则,并且在对这棵二叉树进行制定顺序的遍历之后,能够得到一个有序序列。二叉排序树相当于是另一种排序算法的实现。但是,二叉排序树也同样存在着不足:二叉排序树中不允许存在取值相同的值这也是由其结构决定的。下面,我们就以Java中的TreeSet结构为入手点...
2019-07-17 21:15:23 2999
原创 数据结构(十三)二叉树—— 哈夫曼树和哈夫曼编码译码器
哈夫曼树是二叉树的一种经典应用,哈夫曼树和哈夫曼编码经常搭配使用,用来创建一篇文章对应的加密编码,并且能够对这篇文章进行加密和解密,通过哈夫曼编码加密后的文章完全通过01构成,并且每一篇文章因为内容的不同,即使是相同的字符所对应的的哈夫曼编码也是不同的,所以,既是单纯的得到一篇文章的密文结构,没有得到对应的哈夫曼编码表,也是无法进行解密的。所以哈夫曼树和哈夫曼编码在密码学当中具有非常高...
2019-07-17 19:15:32 2477
原创 数据结构(十二)二叉树—— 二叉树的逆推构建
在经典二叉树问题中,还有一类题目,那就是给定深度优先遍历序列三种顺序中的两种,反推一棵二叉树的结构图。实际上这种问题具有很强的技巧性,只要我们记住这一技巧,就能够很容易的推断出整个二叉树的结构。请记住如下规律:中序定左右,树根看先后但是需要注意的是:在给定的深度优先遍历序列的两种序列中,只有包含中序遍历序列的情况下,才能唯一确定一个二叉树的结构1、先序序列+中序序列的逆推过程通过先序序...
2019-07-13 21:22:45 2241
原创 数据结构(十一)二叉树—— 二叉树的节点遍历
为了方便我们的讨论,在学习二叉树节点的遍历方式之前,我们创建一个二叉树的结构,以此来讨论二叉树的各种遍历方式二叉树的各种方式的遍历,是一个既简单又麻烦的问题。简单在于,找到规律后我们会发现:如何遍历整个二叉树结构,如何遍历二叉树的子树结构,这个过程直接使用递归结构就能够完成;麻烦的是,我们需要找到规律……一、广度优先遍历对一棵二叉树进行广度优先遍历,就是对一棵二叉树中所有的节点,按...
2019-07-13 03:37:46 1410
原创 数据结构(十)二叉树—— 基本概念
二叉树结构一直以来都是数据结构课程中的重点和难点。在原始的二叉树的基础上,有不断演化出了很多其他基于二叉树的结构,但是不管从二叉树衍生出来的结构多么复杂多变,但是底层对于二叉树结构的理论和操作都是相通的。所以从最基本的原生二叉树开始,不断进行总结和实践,最终达到理解和掌握原生二叉树和一些比较有代表性的二叉树变种的目的。一、最常见的树结构在现实生活中,树状结构是十分普遍的。例如在我们的计算机...
2019-07-13 02:47:30 1319
原创 数据结构(九)高级排序算法——四种高级排序算法的效率比较
上面我们已经学习的4种高级排序算法:归并排序、快速排序、堆排序和桶排序。归并、快速排序堆排序、桶排序下面我们通过一个实验案例来进行上述4种排序算法效率的直观比较。实验内容:创建4个具有相同初始化长度、初始化元素内容和元素顺序的,长度为100000的正整数数组,数组中填充的全部都是取值范围在[0,100000]之间的随机正整数,并且为了消除数据之间差异导致排序效果上带来的影响,我们选...
2019-07-11 17:58:14 2511
原创 数据结构(八)高级排序算法——堆排序、桶排序
一、堆排序1、排序原理 堆,是一种类似于二叉树的结构。也就是说,在堆中,每一个待排序序列的元素都可以看做是一个堆的节点,而堆的每一个节点,又有两个子节点。 我们称图中任何一个节点下方的左右两个分支节点为其左右孩子节点,这个节点本身称之为其左右孩子节点的父节点,我们通过不断调整堆的结构,能够得到大根堆(用于升序排序)或者小根堆(用于降序排序)也就是说:大根堆:堆顶元素是...
2019-07-11 17:43:26 3357
原创 数据结构(七)高级排序算法——归并、快速排序
一、归并排序1、排序原理归并排序算法是一种利用了分治算法思想实现的排序算法,这种排序算法是基于有序数组合并的归并排序算法的基本思想就是:判断一个待排序序列的长度,只要这个待排序序列的长度是超过1的,那么久将这个待排序序列进行折半直到一个待排序序列的长度为1的时候,折半停止,并向上进行回溯。回溯过程相当于两个有序数组进行合并的过程。
2019-07-10 23:24:11 570
原创 Maven基础(六)Maven 的概念模型
Maven 包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。项目对象模型 (Project Object Model):一个 maven...
2019-07-01 16:46:47 422
转载 Maven基础(五)Maven的生命周期和插件
前面我们已经讲过坐标、依赖以及仓库,Maven的另外两个核心概念是生命周期和插件。生命周期和插件二者协同工作,密不可分。1. Maven生命周期基本概念1) Maven的生命周期就是为了对所有的构建过程进行抽象和统一。Maven总结了一套高度完善的、易扩展的生命周期,包括了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。2) Maven的生命周...
2019-07-01 16:39:27 482
原创 Maven基础(四)Maven的常用命令
我们可以在cmd 中通过一系列的 maven 命令来对我们的 maven-helloworld 工程进行编译、测试、运行、打包、安装、部署。1、compilecompile 是 maven 工程的编译命令,作用是将 src/main/java 下的文件编译为 class 文件输出到 target目录下。cmd 进入命令状态,执行mvn compile,如下图提示成功:2、tes...
2019-07-01 16:16:02 282
原创 数据结构(六)基本排序算法——四种基本排序算法的效率比较
上面我们已经学习的4种基本排序算法:冒泡排序、选择排序、插值排序和希尔排序。冒泡、选择排序插值、希尔排序下面我们通过一个实验案例来进行上述4种排序算法效率的直观比较。实验内容:创建4个具有相同初始化长度、初始化元素内容和元素顺序的,长度为100000的正整数数组,数组中填充的全部都是取值范围在[0,100000]之间的随机正整数,并且为了消除数据之间差异导致排序效果上带来的影响,...
2019-07-01 15:29:08 3150
原创 数据结构(五)基本排序算法——插值、希尔排序
一、差值排序1、排序原理在学习插值排序之前,首先让我们回忆一下我们曾经玩过的扑克牌游戏的抓牌的过程:假设现在我的手里有4张牌,分别是♥A,♦3,♥8和❀9,并且我从牌堆中又抽取了一张牌,这张牌是♠7,那么,我们应该如何确定这张♠7应该放在我手牌中的什么位置,才能够保证手牌是有序(仅比较大小,忽略牌的花色)的呢?实际上很简单,首先我们发现:我的手牌现在本身就是有序的,然后我们可以将这张♠7首...
2019-07-01 15:17:40 3059
aspose-words、itextpdf完美解决java将word、excel、ppt、图片转换为pdf文件
2023-08-02
Linux.xmind
2020-02-07
数据库管理系统
2016-12-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人