- 博客(14)
- 资源 (32)
- 问答 (1)
- 收藏
- 关注
原创 一文读懂特殊的树结构——堆
定义堆是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。根据结点特征可以将堆分为大顶堆和小顶堆两种,将根节点最大的堆叫做最大堆或大顶堆,根节点最小的堆叫做最小堆或小顶堆。性质1.堆中某个节点的值总是不大于或不小于其父节点的值。2.堆总是一棵完全二叉树。...
2020-10-22 18:42:02
278
1
原创 一文读懂复杂的树结构——红黑树
红黑树定义和性质红黑树是一种含有红黑结点并能自平衡的二叉查找树。它必须满足下面性质:性质1:每个节点要么是黑色,要么是红色。性质2:根节点是黑色。性质3:每个叶子节点(NIL)是黑色。性质4:每个红色结点的两个子结点一定都是黑色。性质5:任意一结点到每个叶子结点的路径都包含数量相同的黑结点。从性质5又可以推出:性质6:如果一个结点存在黑子结点,那么该结点肯定有两个子结点红黑树的结构红黑树的结构如下图所示红黑树并不是一个完美平衡二叉查找树,从上图可以看到,根结点P的左子树显然比右子树
2020-09-22 10:38:40
648
1
原创 一文读懂特殊的树结构——哈夫曼树
哈夫曼树哈夫曼树也叫最优二叉树,是带权路径长度最短的树。路径长度根结点到第L层结点路径长度为L-1带权路径长度(WPL)树中所有叶子节点到根节点的路径长度与该叶子节点权值的乘积之和特性:• 哈夫曼树不一定是唯一的。• 哈夫曼树的左右子树可以互换,这样做并不影响树的带权路径长度。• 带权值的节点都是叶子节点,不带权值的节点都是某棵子二叉树的根节点。• 权值越大的节点越靠近哈夫曼树的根节点,权值越小的节点越远离哈夫曼树的根节点。• 哈夫曼树中只有叶子节点和度为2的节点,没有度为1的节
2020-08-18 16:31:51
4895
3
原创 一文读懂较复杂的数据结构——树,二叉树
树树是n(n>=0)个结点构成的有限集,n=0时称为空树,在任意一棵非空树中有且仅有一个结点称为根结点,其余结点可分为m(m>0)个互不相交的有限集,每个有限集又是一棵树,它们称为根结点的子树。术语解释结点的度当前结点向下直接连接的结点的个数树的度树中所有结点的度的最大值子结点一个结点含有的子树的根结点称为该结点的子结点父结点若一个结点含有子结点,则这个结点称为其子结点的父结点兄弟结点拥有同一父结点的结点互为兄弟结点叶结点没有子树的结点叫做叶结点祖先结
2020-08-15 00:04:26
517
原创 一文读懂较复杂的数据结构——散列表
专栏目录(数据结构与算法解析):https://blog.youkuaiyun.com/qq_40344524/article/details/107785323散列表散列表也叫哈希表,它是根据键值关系对数据进行直接访问的数据结构,通常是通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。事实上散列表的的基础就是数组,由于数组可以在短时间内实现任意位置的访问也就保证了散列表能够快速访问任意位置的数据。在使用散列表的过程中最重要的就是散列函数的选择,通
2020-08-11 08:28:05
929
原创 一文读懂简单的数据结构——队列
队列上节对栈进行了介绍,今天我们来介绍另一个特殊的线性数据结构——队列,队列只能在一端插入数据,另一端删除数据,它和栈一样,也是一种操作受限制的线性表,进行插入操作的称为队尾,进行删除操作的称为队头,队列中的数据被称为元素,没有任何元素的队列称为空队列。由于只能一端删除或者插入,所以只有最先进入队列的才能被删除,因此队列是先进先出结构的。具体见下方操作演示图:图:队列操作示意图通过上述图片可以发现,队列形似一条管道,通常只有一个进水口和一个出水口,因此最先进入队列的元素自然而然会先出队列。
2020-08-07 17:11:09
319
原创 一文读懂简单的数据结构——栈
栈栈是限定只能在表尾进行插入或删除操作的线性表,在学习栈的相关操作之前我们要先记住几个概念:栈底,栈顶,空栈,入栈(压栈),出栈概念解释栈底线性表的尾部位置叫做栈底,它有一些特殊含义,后续在讲解代码时会讲到栈顶线性表的表头位置叫做栈顶,它是出栈和入栈的操作位置空栈当定义为栈的线性表中不存在任何元素的时候该线性表叫做空栈入栈也叫压栈,是指将元素放到栈中,此时栈顶指针要上移一位出栈将栈顶元素从栈中取出,栈顶指针下移一位栈的具体操作过程见如下演示图从以上图例演示中我们可以看出
2020-08-03 17:09:28
479
原创 一文读懂简单的数据结构——链表
链表是一种物理存储单元上非连续、非顺序的存储结构,链表中的数据随机的分布在内存中的各个位置,没有特定限制,这种存储结构又被称为线性表的链式存储。单链表单链表又称为单向列表,该链表的访问顺序是单向的,由于链表中各元素是分散存储的,所以为了能够体现出元素之间的逻辑关系,在单链表中每个数据元素在存储的同时,要配备一个指针,这些配备有指针的结构我们会统称为结点,在单链表中每个结点都会包含一个数据域和一个指针域,数据域用于存储各结点的元素数据,指针域用于指向它的直接后继结点,即每一个数据元素都指向下一个数据元素(
2020-08-01 00:45:43
1547
原创 一文读懂最简单的数据结构——数组
数组详解定义:有序的元素序列,数组是用来存储具有“一对一”逻辑关系的数据的线性存储结构,由于在各种编程语言中常把数组作为基本数据类型来使用,很多人会误解数组不是存储结构。通常我们根据不同的结构特性将数组分为三类:一维数组,二维数组和多维数组(存储(n-1)维数组的数组,不做过多讨论)本节中我们主要针对一维数组进行详细讲解,分析数组的应用场景,使用方法及其优缺点。一维数组:一维数组是指存储单个元素的数组,以整形数组为例,通常C语言中我们会将其定义为:int array[n],其中n表示数组中可存
2020-07-27 19:50:25
520
转载 20 张图揭开「内存管理」的迷雾,瞬间豁然开朗
每日英语,每天进步一点点前言之前有不少读者跟我反馈,能不能写图解操作系统?既然那么多读者想看,我最近就在疯狂的复习操作系统的知识。操作系统确实是比较难啃的一门课,至少我认为比计算机网络难太多了,但它的重要性就不用我多说了。学操作系统的时...
2020-07-27 09:37:09
337
原创 jsp文件部署与执行
jsp文件与传统意义上的html文件有所区别,它无法直接在浏览器中打开,需要先部署到服务器上,然后服务器会将其解析反馈打开页面,通常我们可以借助Tomcat来进行部署,首先下载安装Tomcat,然后找到Tomcat安装目录,在该目录下找到文件夹webapps,在这个文件夹下新建一个文件夹命名随意(不能出现中文),我将其命名为mali,将准备打开的jsp文件连同一些相关联的内容放到刚才新建好的文件夹
2018-04-21 11:24:27
4972
C#管道通信.zip
2020-04-12
C++管道通信.zip
2020-04-12
duilib入门简明教程.ZIP
2020-03-13
duilib进阶教程.zip
2019-06-22
线路切换工具
2018-07-07
IP扫描工具
2018-07-07
FTP服务器安装教程
2018-06-25
cisco模拟器实验攻略
2018-06-02
序列图像中多运动目标的识别
2018-04-26
ip动态扫描
2018-04-23
C流程图生成器
2018-04-23
TCP-IP详解卷合集
2018-04-23
C语言参考手册
2018-04-22
C语言经典算法100例
2018-04-21
深度学习-超智能体
2018-04-21
Python web接口开发与测试
2018-04-20
计算机通信原理(讲义)
2018-04-20
C语言编程中循环语句中的输入输出问题
2017-09-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人