![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 83
数据结构与算法相关内容
1oneLee
这个作者很懒,什么都没留下…
展开
-
二叉树的前中后序遍历
/* * @Description: * @Autor: zhangbing * @Date: 2021-09-03 17:17:44 * @LastEditors: zhangbing * @LastEditTime: 2021-09-03 19:17:12 */let tree = { val: 5, left: { val: 2, left: { val: 1, left: null, right: null },原创 2021-09-03 19:22:35 · 65 阅读 · 0 评论 -
2021-08-26
数据结构体系课笔记原创 2021-08-26 10:49:28 · 46 阅读 · 0 评论 -
JavaScript实现排序算法
JavaScript实现排序算法javascript 数据结构与算法源码目录JavaScript实现排序算法一、大O表示法二、排序算法1.冒泡排序2.选择排序3.插入排序4.希尔排序5.快速排序一、大O表示法大O表示法:在计算机中采用粗略的度量来描述计算机算法的效率,这种方法被称为**“大O”表示法**在数据项个数发生改变时,算法的效率也会跟着改变。所以说算法A比算法B快两倍,这样的比较是没有意义的。因此我们通常使用算法的速度随着数据量的变化会如何变化的方式来表示算法的效率,大O表示法就是方原创 2021-03-01 20:55:42 · 137 阅读 · 1 评论 -
JavaScript实现图结构
JavaScript实现图结构javascript 数据结构与算法源码目录JavaScript实现图结构一、图论1.1.图的简介1.2.图的表示邻接矩阵邻接表二、封装图结构2.1.添加字典类和队列类2.2.创建图类2.3.添加顶点与边2.4.转换为字符串输出2.5.图的遍历广度优先搜索深度优先搜索2.6.完整实现一、图论1.1.图的简介什么是图?图结构是一种与树结构有些相似的数据结构;图论是数学的一个分支,并且,在数学中,树是图的一种;图论以图为研究对象,研究顶点和边组成的图形的数学理论和原创 2021-03-01 13:31:53 · 123 阅读 · 0 评论 -
javascript图解红黑树
图解红黑树目录图解红黑树一、红黑树的五条规则二、红黑树的三种变换2.1.变色2.2.左旋转2.3.右旋转三、红黑树的插入操作3.1.情况13.2.情况23.3.情况33.4.情况43.5.情况53.6.案例插入10插入9插入8插入7插入6插入5插入4插入3插入2**插入1**四、红黑树的删除操作一、红黑树的五条规则红黑树除了符合二叉搜索树的基本规则外,还添加了以下特性:规则1:节点是红色或黑色的;规则2:根节点是黑色的;规则3:每个叶子节点都是黑色的空节点(NIL节点);规则4:每个红色节点原创 2021-02-28 22:48:13 · 443 阅读 · 0 评论 -
JavaScript 实现树结构(二)
JavaScript实现树结构(二)javascript 数据结构与算法源码目录JavaScript实现树结构(二)一、二叉搜索树的封装1.插入数据2.遍历数据2.1.先序遍历2.2.中序遍历2.3.后续遍历3.查找数据3.1.查找最大值&最小值3.2.查找特定值4.删除数据4.1.情况1:没有子节点4.2.情况2:有一个子节点4.3.情况3:有两个子节点4.4.完整实现5.二叉搜索树完整封装二、平衡树一、二叉搜索树的封装二叉树搜索树的基本属性:如图所示:二叉搜索树有四个最基本的属性:指向原创 2021-02-28 22:32:29 · 208 阅读 · 0 评论 -
JavaScript实现树结构(一)
JavaScript实现树结构(一)javascript 数据结构与算法源码一、树结构简介1.1.简单了解树结构什么是树?真实的树:树的特点:树一般都有一个根,连接着根的是树干;树干会发生分叉,形成许多树枝,树枝会继续分化成更小的树枝;树枝的最后是叶子;现实生活中很多结构都是树的抽象,模拟的树结构相当于旋转180°的树。树结构对比于数组/链表/哈希表有哪些优势呢:数组:优点:可以通过下标值访问,效率高;缺点:查找数据时需要先对数据进行排序,生成有序数组,才能提高查找效率原创 2021-02-28 22:38:59 · 659 阅读 · 0 评论 -
JavaScript 实现哈希表
JavaScript 实现哈希表源码地址一、哈希表简介1.1.认识哈希表哈希表通常是基于数组实现的,但是相对于数组,它存在更多优势:哈希表可以提供非常快速的插入-删除-查找操作;无论多少数据,插入和删除值都只需要非常短的时间,即O(1)的时间级。实际上,只需要几个机器指令即可完成;哈希表的速度比树还要快,基本可以瞬间查找到想要的元素。但是相对于树来说编码要简单得多。哈希表同样存在不足之处:哈希表中的数据是没有顺序的,所以不能以一种固定的方式(比如从小到大 )来遍历其中的元素。通常情原创 2021-02-27 21:50:02 · 255 阅读 · 0 评论 -
JavaScript实现集合与字典
JavaScript 实现集合与字典javascript 数据结构与算法源码目录JavaScript 实现集合与字典一、集合结构1.1.简介1.2.代码实现1.3.集合间的操作二、字典结构2.1.简介2.2.封装字典一、集合结构1.1.简介集合比较常见的实现方式是哈希表,这里使用JavaScript的Object类进行封装。集合通常是由一组无序的、不能重复的元素构成。数学中常指的集合中的元素是可以重复的,但是计算机中集合的元素不能重复。集合是特殊的数组:特殊之处在于里面的元素没有顺序原创 2021-03-01 14:07:02 · 515 阅读 · 1 评论 -
JavaScript实现双向链表
JavaScript实现双向链表JavaScript实现双向链表一、双向链表简介双向链表:既可以从头遍历到尾,又可以从尾遍历到头。也就是说链表连接的过程是双向的,它的实现原理是:一个节点既有向前连接的引用,也有一个向后连接的引用。双向链表的缺点:每次在插入或删除某个节点时,都需要处理四个引用,而不是两个,实现起来会困难些;相对于单向链表,所占内存空间更大一些;但是,相对于双向链表的便利性而言,这些缺点微不足道。双向链表的结构:双向链表不仅有head指针指向第一个节点,而且有tail原创 2021-02-26 23:05:51 · 358 阅读 · 0 评论 -
JavaScript实现单向链表
JavaScript实现单向链表javascript 数据结构与算法源码目录JavaScript实现单向链表一、单向链表简介二、封装单向链表类2.0.创建单向链表类2.1.append(element)2.2.toString()2.3.insert(position,element)2.4.get(position)2.5.indexOf(element)2.6.update(position,element)2.7.removeAt(position)2.8.其他方法2.9.完整实现一、单向链表简原创 2021-03-01 13:39:42 · 139 阅读 · 0 评论 -
JavaScript实现队列结构
JavaScript实现队列结构数据结构与算法源代码目录JavaScript实现队列结构一、队列简介二、封装队列类2.1.代码实现2.2.队列的应用三、优先队列3.1.优先级队列的实现3.2.注意点一、队列简介队列是是一种受限的线性表,特点为先进先出(FIFO:first in first out)。受限之处在于它只允许在表的前端(front)进行删除操作;在表的后端(rear)进行插入操作;相当于排队买票,先来的先买票,后来的后买票。队列的应用:打印队列:计算机打印多个文件的时原创 2021-03-01 13:59:39 · 106 阅读 · 0 评论 -
JavaScript实现栈结构
JavaScript实现栈结构javascript 数据结构与算法源码目录JavaScript实现栈结构一、前言1.1.什么是数据结构?1.2.什么是算法?二、栈结构(Stack)2.1.简介2.2.封装栈类一、前言1.1.什么是数据结构?数据结构就是在计算机中,存储和组织数据的方式。例如:图书管理,怎样摆放图书才能既能放很多书,也方便取?主要需要考虑两个问题:操作一:新书怎么插入?操作二:怎么找到某本指定的书?常见的数据结构:数组(Aarray)栈(Stack)链表(Lin原创 2021-03-01 14:03:55 · 105 阅读 · 0 评论