数据结构
文章平均质量分 86
一名专业的前端工程师,不仅要精通前端等基础知识,还要对数据结构有着独特的见解和认知。
bear*6
努力的小熊
展开
-
哈希表(JavaScript实现)
哈希表一、什么是哈希表一、什么是哈希表哈希表是一种非常重要的数据结构,几乎所有的编程语言都有直接或者间接的应用这种数据结构,它通常是基于数组实现的,当时相对于数组,它有更多的优势:它可以提供非常快速的插入-删除-查找操作。哈希表的速度比数还要快,基本可以瞬间查找到想要的元素哈希表相对于数来说编码要容易的多。但是哈希表相对于数组也有一些不足:哈希表中的数组是没有顺序的,所以不能以一种固定的方式(比如从小到大)来遍历其中的元素。通常情况下,哈希表中的key是不允许重复的,不能放置相同的ke原创 2021-12-19 17:47:02 · 2564 阅读 · 2 评论 -
双向链表(JavaScript实现)
双向链表一、什么是双向链表二、双向链表的封装三、双向链表的常用操作1、append(element)方法-----向列表尾部添加一个项一、什么是双向链表我们知道单链表只能从头遍历到尾或从尾遍历到头(一般从头遍历到尾),即链表相连的过程是单向的,实现的原理是上一个链表中有一个指向下一个的引用。它有一个比较明显的缺点:我们可以轻松的到达下一个节点,但是回到前一个节点是很困难的,但是,在实际开发中,经常会遇到需要回到上一个节点的情况,所以这里就需要双向链表。所谓双向链表就是:既可以从头遍历到尾,又可以从尾原创 2021-12-09 19:56:17 · 1777 阅读 · 4 评论 -
单链表(JavaScript实现)
单链表一、什么是链表二、单链表的封装三、链表的常用操作1、append(element)方法-----向列表尾部添加一个项2、toString方法-----输出元素的值3、insert方法-----向列表的特定位置插入一个项4、get方法-----获取对应位置的元素5、indexOf()方法-----返回元素在列表中的索引6、update方法-----修改某个位置的元素7、removeAt方法-----从列表的指定位置移除一项8、remove方法-----从列表中移除一项9、isEmpty方法-----判断原创 2021-12-04 17:07:58 · 1213 阅读 · 5 评论 -
优先级队列(JavaScript实现)
优先级队列一、优先级队列介绍二、优先级队列封装一、优先级队列介绍我们知道,普通的队列插入一个元素,数据会被放在后端,并且需要前面所有的元素都处理完成后才会处理前面的数据。但是优先级队列,在插入一个元素的时候会考虑该数据的优先级,和其他数据的优先级进行比较。比较完成后,可以得出这个元素在队列中的正确位置,其他的处理方式,和基本队列的处理方式基本一样。优先级队列主要考虑的问题:每个元素不再只是一个数据,而且包含数据的优先级;在添加方式中,根据优先级放入正确的位置。在日常中也有用到优先级队列的例子原创 2021-11-30 23:08:05 · 992 阅读 · 6 评论 -
队列结构(JavaScript实现)
队列结构一、认识队列二、封装队列三、击鼓传花案列一、认识队列前面的博客已经讲了受限的数据结构—栈,现在,我们再来看看队列(Queue)。它是受限的线性表,先进先出(FIFO),即first in first out。受限之处在于它只允许在表的前端(front)进行删除操作。而在表的后端(rear)进行插入操作。其结构图可以表示为:生活中类似于队列的例如当我们在排队买东西的时候,先到先买一样。二、封装队列这里也采用数组的方式实现队列结构,首先,创建一个类。 function Q原创 2021-11-30 20:01:12 · 2595 阅读 · 1 评论 -
栈结构(JavaScript实现)
栈结构一、认识栈结构二、栈结构封装三、十进制转化为二进制一、认识栈结构我们知道数组是一种常见的数据结构,并且可以在数组的任意位置插入和删除数据,但是有时候,我们为了实现某些功能,必须对这种任意性加以限制,而栈和队列就是比较常见的受限的数据结构,我们先来看看栈。栈(stack),它是一种受限的线性表,后进先出(LIFO)其限制性是允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对的,把另一端,称为栈底。LIFO(last in first out)表示就是后进入的元素,第一个弹出栈空间。向原创 2021-11-30 20:00:53 · 396 阅读 · 1 评论