![](https://img-blog.csdnimg.cn/20210515091857982.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 63
关于数据结构与算法的学习记录
Continue丶
努力变得更好一点
展开
-
数据结构与算法(五):哈希表
????如有理解不对,欢迎评论留言。文章目录1.概述2.哈希函数2.1 字符串转数字3.基本过程4. 封装哈希表在此之前,先简单概述下整个基本过程(深入链地址法为例):插入:输入键值对,根据键key通过哈希函数生成对应的HashCode,将HashCode哈希化生成索引,在数组对应索引处的位置生成数组(链表)添加数组单元,存储键和值。删除:同理key转换为对应索引,直接往索引处查找1.概述哈希表在数据结构中有着非常重要的地位,因为它有着非常高的查找、插入、删除效率,这也是我们经常使用它的原因。原创 2021-05-15 15:08:09 · 233 阅读 · 0 评论 -
数据结构与算法(四):集合
文章目录1.概述2.封装一个Set集合1.概述差不多所有的编程语言中,都存在集合结构。特点:1.集合通常是由一组无序的、不能重复的元素构成2.我们可以将集合看成一个特殊的数组,特殊在于它里面的元素没有顺序,也不能重复,没有顺序也意味着不能通过下标值进行访问。2.封装一个Set集合在ES6中其实已经包含了集合Set类,让我们试着封装以下 <script> function Set() { this.items = {}; // 1.添加数据原创 2021-05-15 10:36:13 · 77 阅读 · 0 评论 -
数据结构与算法(三):链表
文章目录1.概述2.单向链表双向链表1.概述链表和数组一样,可以用于存储一系列的元素,但是链表和数组的实现机制完全不同。先来说说数组:要存储多个元素,数组可能是常用的数据结构,但它也有许多缺点,如:需要申请一段连续存储的内存空间,在大多数语言中还需要预先限定大小,所以当数组不能满足容量需求时还需要扩容。在数组开头或中间位置插入数据成本很高,需要进行大量元素的位移。所以要存储多个元素,还有一个选择就是链表相对于数组,它有以下优点:内存空间不必是连续的,可以充分利用计算机的内存,实现灵活原创 2021-05-15 10:12:12 · 90 阅读 · 1 评论 -
数据结构与算法(二):队列
文章目录1. 概述2. 封装一个队列3. 实例(约瑟夫环)1. 概述与栈一样也是受限的数据结构,但是它是先进先出,后进后出简单理解:它是一根管道,从一端进入,另一端退出。如图:假如方向如图所示,从右往左走可知进入顺序123,退出顺序也是1232. 封装一个队列也以数组为例实现方法如下 function Queue() { this.items = []; // 1.向队列尾部添加一个或多个新的项 Queue.prototype.enqueue原创 2021-05-02 20:50:03 · 95 阅读 · 3 评论 -
数据结构与算法(一):栈
文章目录1. 概述2. 封装一个栈3. 实例(十进制转二进制)1. 概述栈结构是一种非常常见的的数据结构,在程序中应用广泛。就比如我们平常所说的基本数据类型存在栈中。简单描述:栈就是一个盒子,只有一个入口,从入口放入,从入口取出。如图:push:入栈pop: 出栈从图可知压入栈的顺序123,而出栈顺序只能为321可知栈的特点:先进后出,后进先出2. 封装一个栈这里以封装一个数组为例实现方法:push()、pop()、查看栈顶、判断是否为空、获取栈中元素个数、toString f原创 2021-05-02 17:15:47 · 130 阅读 · 0 评论