![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
宫小白(转掘金了)
热爱文学,热爱生活,热爱编程
展开
-
js版数据结构_09 二叉堆
ps:再来实现一个非常重要的数据结构 ——二叉堆知道导航:什么是二叉堆二叉堆的具体实现(以最小堆为主)那什么是二叉堆呢?首先二叉堆它是一种特殊的二叉树,它有两个特性它是一棵完全二叉树,表示树的每一层都有左侧和右侧子节点(除了最后一层的叶节点),并且最后一层的叶节点尽可能都是左侧子节点,这叫作结构特性。二叉堆不是最小堆就是最大堆。最小堆允许你快速导出树的最小值,最大堆允许你快速导出树的最大值。所有的节点都大于等于(最大堆)或小于等于(最小堆)每个它的子节点。这叫作堆特性额。。.原创 2020-05-30 19:32:01 · 293 阅读 · 0 评论 -
js版数据结构_08 二叉搜索树
知识点:什么是二叉搜索树实现ps:写在前面,树的结构虽然比前面的复杂一点,但是呢只要会用递归其实还是很简单的。理解递归也是蛮简单的,不信画个执行栈走走。这一节我本来打算是只把代码放上来的,因为除了一个删除比较复杂点别的就是跟着逻辑写,所以文字描述显得比较应付。看代码吧,代码思路写的还是没毛病的1. 二叉搜索树二叉树我们都很熟悉,二叉搜索树是在二叉树的基础上又做了一下规定。即只允许你在左侧节点存(比父节点)小的值,在右侧节点存储(比父节点)大的值。创建二叉搜素树类: class Bina原创 2020-05-13 22:46:54 · 153 阅读 · 0 评论 -
js版数据结构_07散列表
js版数据结构_07散列表ps:今天晚上写之前没考虑这一节代码量的问题,为保证时间没有测试。但是主要都是逻辑问题,看逻辑便ok知识点散列表什么hash表的基本实现hash表完善之使用分离链接hash表完善之使用线性探查1. 散列表找的这两个图比较能体现散列表的特点,我们至今已经总结了不少的数据结构。但是回想一样在他们的取值实现中,我们为取到一个值往往是要对整个结构进行遍历。...原创 2020-04-17 22:56:34 · 202 阅读 · 0 评论 -
js版数据结构_06 字典
js版数据结构_06 字典本篇博客知识点:什么是字典相关方法的实现1. 什么是字典上一篇博客我们总结了集合,知道集合就是存放了一组互不重复的元素。字典和它相差不多,只不过集合里面只是保存了值,而在这里是以键值对的方式保存的与集合的实现相同,这里我们还是使用对象作为字典结构的数据容器。创建字典类:class Dictionary { constructor...原创 2020-04-16 19:00:30 · 113 阅读 · 0 评论 -
js版数据结构_05集合(2)
js版数据结构_05集合(2)本篇博客知识点:实现集合的基本运算写在前面:集合在数学中是一个很重要的概念当然在计算机领域中也是非常重要数据库就是它的一个典型应用如:写一条sql的查询语句便可以指定获取的全部数据集合还是它的子集,也可以获取两张表上的共有数据(交集)等等接下来要实现的运算并集交集差集子集正题:基本运算的实现1. 并集 A∪ B定义:A∪ B = {...原创 2020-04-15 17:29:42 · 98 阅读 · 0 评论 -
js版数据结构_05集合(1)
js版数据结构_05集合(1)ps : 集合这种数据结构相对比较简单,所以就不用过多写些解释了本篇博客知识点集合的基本概念功能实现1. 什么是集合集合:由一组无序且唯一的项组成,它与数学中集合的概念基本相同。以数学中的集合为例:如:一个由大于或等于 0 的整数组成的自然数集合: N = {0, 1, 2, 3, 4, 5, 6, …}集合这个数据结构相比于与链表好理解很多...原创 2020-04-14 14:09:40 · 98 阅读 · 0 评论 -
js版数据结构_04链表(3)
js版数据结构_04链表(3)本篇博文知识点循环链表(由于上篇是双向链表故这里以双向循环链表为例)1. 循环链表上篇总结了双向链表,而循环链表则是对链表的进一步改进。使得它们可以头连尾,尾连头。构成一个闭环。同样,它的很多操作是和单链表是一样的。在这我们只看它们任意位置插入和任意位置删除两个方法insertX(e, index): insertX(e, index) { ...原创 2020-04-09 22:57:14 · 95 阅读 · 0 评论 -
js版数据结构_04链表(2)
js版数据结构_04链表(2)在本篇博文我会总结到:双向链表循环链表有序链表1. 双向链表上一篇我们总结了单链表的实现,体验到了它的灵活性。但是它有一个很大的缺点,相信大家已经体会到了,就是使用它取数据无论取哪一个都得从头节点开始找,并且如果我们目前的位置在链表中的一个节点上我们是没有办法取到它前一个节点的数据。为了弥补这一不足,双向链表迈着潇洒的步子向我们走过来了。什么是双...原创 2020-04-08 12:12:07 · 100 阅读 · 0 评论 -
js版数据结构_04链表(1)
js版数据结构_04链表(1)从本篇开始我将用三篇博文写总结js对链表的操作在本篇博文你会了解到:什么是链表单链表的实现1.什么是链表这种东西有什么优点,先说说数组。所有的高级语言都有数组这一数据结构吧,我们都清除数组是一块地址连续的储存单元。以c为例,声明数组的变量名便是储存了这片连续空间的首地址。因为它连续我们可以很方便的存取数组中的每一个元素,但是我想增删元素呢。它的...原创 2020-04-05 00:56:38 · 112 阅读 · 0 评论 -
js版数据结构_03循环队列队列
js版数据结构_03循环队列队列写在前面,虽然代码在编写中测试均已实现。但小白水平有限。未免有考虑不周在本篇博文你会了解到:循环队列队列相关应用:回文检查1. 循环队列的实现所谓循环队列,不过是普通队列的一种变种。它将普通队列的首尾进行连接使其构成逻辑上的环形结构,因为队列的大小是固定的所以可以更简单防止伪溢出的发生。下面来看实现吧(还是老样子,私有成员变量课第一章,还是主...原创 2020-04-04 13:53:38 · 242 阅读 · 0 评论 -
js版数据结构_02队列
js版数据结构_02队列代码均经过测试,但小白太白难免不足在本篇博文你可以了解到队列是什么东西双端队列队列和栈是十分相似的,只不过栈的特点是先进后出,而队列的是先进先出1 队列是什么队列是遵循先进先出(FIFO)原则的一组有序的项,它的操作可以在两端进行。即:队尾进,对头出写在前面: 未完善哦,像私有成员变量的这种仿照第一节。毕竟我们要先学会思想创建这个队列的类吧...原创 2020-04-03 21:29:29 · 101 阅读 · 0 评论 -
js版数据结构_01 栈
js数据结构系列 栈1. 什么是栈简单理解:栈这种数据结构应该算是很简单的了吧,它的特点就是在于先进后出(LIFO)。如上图,一端为栈底,一端为栈顶。并且无论出栈还是入栈的操作都是发生在栈顶。一个栈的数据结构应该具有以下操作:push 出栈pop 入栈peek 返回栈顶元素isEmpty 判空clear 清除栈中元素size 返回栈中元素个数2. 实现一个栈在...原创 2020-04-03 00:08:49 · 136 阅读 · 0 评论 -
数据结构精习
1.开场首先我们学习一门知识都会有几个疑问?为什么要学数据结构数据结构重要吗数据结构好学吗怎么才能学好呢数据结构学什么接下来本博主一一作答为什么要学?答: Pascal语言之父N.Wirth教授说:程序=数据结构+算法,这个公式对于计算机科学的影响程度足以类似物理学爱因斯坦的“E=MC^2”数据结构重要吗?答:数据结构在我们的学科体系中有着承上启下的作用。下面看一张图...原创 2019-12-19 23:26:15 · 416 阅读 · 0 评论 -
逻辑结构与物理结构
逻辑结构与物理结构按照视点的不同,我们把数据结构分为逻辑结构和物理结构逻辑结构逻辑结构是指,数据对象中数据元素之间的相互关系有以下四种结构结构集合结构:这种结构中的数据元素除了同属于一个结合之外,它们之间没有其他关系。各个元素之间都是平等的。它们是共同属性就是同属于同一个结合线性结构线性结构中数据之间都是一对一的关系,除了首尾元素,其他元素都有一个直接前驱一个直接后继...原创 2019-12-14 20:09:46 · 792 阅读 · 0 评论