数据结构和算法
数据结构与算法
不头秃的码农
愿你以渺小启程,以伟大结尾
展开
-
常用数据结构(五)树
二叉树的简介,深度遍历(先序、中序、后序)、广度遍历原创 2021-05-26 15:20:47 · 200 阅读 · 1 评论 -
常用数据结构(四)链表
链表简介,基础的链表的实现,包括链表的查找、新增和删除功能,双向链表,双向循环链表,跳跃表原创 2021-05-26 15:11:25 · 246 阅读 · 1 评论 -
常用数据结构(三)队列
队列是操作受限的线性结构。可以在头部和尾部进行操作,但尾部只能插入,头部只能删除。 这种受限的操作方式让队列元素的插入和删除遵循一种特殊的原则——先进先出原则(First In First Out,FIFO)。JavaScript 在处理异步操作时经常会用到队列,例如:宏任务队列、微任务队列; 回调函数队列。队列的实现也可以通过数组来实现,下面的代码实现了一个队列结构:function Queue(){ var _queue = []; // 尾部入队列 this.enq原创 2021-05-26 15:06:28 · 142 阅读 · 1 评论 -
常用数据结构(二)栈
栈是一种操作受限的线性结构,限定只能在尾部进行插入和删除操作。尾部被称为栈顶,而头部称为栈底。 向一个栈插入新元素又称作进栈、入栈或压栈。 从一个栈删除元素又称作出栈或退栈。 这种受限的操作方式让栈元素的入栈出栈遵循一种特殊的原则——先进后出(First In Last Out,FILO)。栈的应用非常广泛,例如:浏览器的历史记录,它的前进、后退功能就是一个栈操作; V8 中的函数执行过程采用的栈结构; JavaScript 在捕获代码异常时,详细信息会以调用栈的形式打印。栈可以通过数原创 2021-05-26 15:02:18 · 107 阅读 · 0 评论 -
常用数据结构(一)数组
数据结构概念计算机中组织和存储数据的特定方式,是对基本数据类型的一种高级抽象。是描述数据之间的关系和操作数据的方法。常用的数据结构:数组 、栈、队列、链表、树数组这里指一维数组(数组可以生成更复杂的多维数组、栈、队列…)V8源码如下:// The JSArray describes JavaScript Arrays//Such an array can be in one of two modes://- fast, backing storag...原创 2021-05-26 11:56:08 · 302 阅读 · 0 评论 -
大O表示法和时间复杂度
学数据结构和算法的目的 =>实现程序的高速运行,那么必然要了解复杂度。复杂度分为两个维度:时间、空间。度量一个程序的执行时间通常有两种方法 事后统计的方法 事前分析估算的方法 =>O Ο(1)<Ο(log2(n))<Ο(n)<Ο(n^2)<Ο(n^3)<…<Ο(2^n)对复杂度的计算一般采用事前分析估算的方法,即大O表示法。接下来让我们进入复杂度的学习!大O表示法——概念(待补充)大O表示法——四种时间复杂度1. Ο(1):...原创 2020-07-15 15:21:57 · 2337 阅读 · 2 评论