数据结构
文章平均质量分 64
Jiang_JY
提供开发、答疑等收费服务,后续会发布更多的前后端文章,感谢关注,共同进步
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
js实现数组扁平化的6种方法
概念数组扁平化就是将一个多维数组转换为一个一维数组[1,[2,[3,4,5]]] ==> [1,2,3,4,5]实现方法下面就来介绍一下js中实现数组扁平化的6种方式:1、递归实现普通的递归思路很容易理解,就是通过循环递归的方式,一项一项地去遍历,如果每一项还是一个数组,那么就继续往下遍历,利用递归程序的方法,来实现数组的每一项的连接。let arr = [1, [2, [3, 4, 5]]];function flatten(arr) { let result = [];原创 2022-02-12 16:00:55 · 18914 阅读 · 3 评论 -
数据结构中的树
介绍相比于数组、链表、哈希表,不能说树结构比它们的结构要好,因为每一种数据结构都有自己特定的应用场景。但是树结构确实也综合了这些的数据结构的优点(当然优点不足以盖过其他数据结构,比如效率一般情况下没有哈希表高),并且弥补了这些数据结构的缺点。为了模仿某些场景,我们使用树结构会更加的方便。比如:文件的目录结构。因为树结构是非线性的,可以表示一对多的关系。术语为了更好的了解树结构,我们还需要对树结构的术语进行了解:节点的度(Degree):节点的子数个数。树的度:树的所有节点中最大的度数。叶节点原创 2021-12-04 17:00:34 · 1079 阅读 · 0 评论 -
数据结构中的哈希表
前言哈希表是一种非常重要的数据结构,几乎所有的编程语言都有直接或间接的使用到这种数据结构。介绍哈希表通常是基于数组进行实现的,但是相对于数组,哈希表有许多的优势:它可以提供非常快速的插入-删除-查找操作。在哈希表种,无论多少数据,插入和删除值只需要接近常量的时间:即O(1)的时间级。在进行操作时只需要几个机器指令即可完成。其速度比树还要快,基本可以瞬间查找到想要的元素。但是哈希表也有不足:哈希表种的数据是没有顺序的,所以不能以一种固定的方式(比如从小到大)来遍历其中的元素。通常情况下,原创 2021-12-02 14:53:23 · 1894 阅读 · 0 评论 -
数据结构中的字典
介绍字典是一种以 键 - 值(key - value) 对形式存储结构的数据结构。在生活中,比如中文字典,我们可以根据拼音区查找汉字,并且得到汉字的信息。这里的拼音就可以比作成数据结构中字典结构的键,而汉字及其信息就相当于拼音这个键所对应的值。特点字典的主要特征是一一对应的关系我们通过下标在数组中取值,而在字典中我们使用key来取出对应的value字典中的key是不可以重复的,而value是可以重复的,并且字典中的key是无序的。关系1、字典和映射的关系1.有些编程语言中称这种映射关系原创 2021-12-01 23:39:57 · 1547 阅读 · 0 评论 -
数据结构中的集合
介绍几乎每种编程语言中,都有集合结构。集合是由一组无序但彼此之间又有一定相关性的成员构成的, 每个成员在集合中只能出现一次。集合是特殊的数组,特殊之处在于:里面的元素没有顺序,也不能重复。没有顺序意味着不能通过下标值进行访问,不能重复意味着相同的对象在集合中只会存在一个。集合间的操作1、并集对于给定的两个集合,返回一个包含两个集合中所有元素的新集合。2、交集对于给定的两个集合,返回一个包含两个集合中共有元素的新集合。3、交集对于给定的两个集合,返回一个包含所有存在于第一个集合原创 2021-12-01 08:36:19 · 1454 阅读 · 2 评论 -
数据结构中的链表
什么是链表链表是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现,有一系列结点(地址)组成,结点可动态的生成。相对于数组,链表有以下优点:内存空间不是必须连续的,可以充分利用计算机的内存,实现灵活的内存动态管理。链表不必在创建时就确定大小,并且大小可以无限的延申下去。链表在插入和删除数据时,时间复杂度可以达到O(1),相对数组效率高很多。相对于数组,链表有以下缺点:链表访问任何一个位置的元素时,都需要从头开始访问(无法跳过第一个元素访问链表中的其他元素原创 2021-12-01 08:14:03 · 1124 阅读 · 0 评论 -
数据结构中的队列
介绍队列(Queue)是一种受限的线性表,先进先出(FIFO First In First Out)为什么说队列是一种受限的线性表呢?因为队列只允许在表的前端(front)进行删除操作,而进行插入操作只能在表的后端(rear)在生活中也有许多地方类似于队列结构:比如在电影院排队买票,先排队的人先买票先离开,而后面的人要通过排队才能买到票。这就类似于队列的先进先出。队列的示意图:应用队列在程序中也是十分常见的,例如:打印队列:假如有5份文档需要打印,这些文档会按照次序放入到打印队列中。打原创 2021-11-28 00:59:08 · 311 阅读 · 0 评论 -
数据结构中的栈
前言栈是一种非常常见的数据结构,并且在程序中的应用非常广泛。描述栈(stack)是一种受限的线性表,后进先出(LIFO)其限制是仅允许在表的一端进行插入和删除运算,这一端称为栈顶,相对的另一端就成为栈底。向一个栈中添加新元素称为进栈、入栈或压栈,添加的新元素会成为栈中的新的栈顶元素。而删除栈中元素称为出栈或退栈,删除掉的元素是栈顶元素,删除后在其下面的元素会随之成为新的栈顶元素。LIFO(last in first out)表示就是后进入的元素先弹出栈空间,最先进栈的则最后弹出栈空间。以原创 2021-11-26 22:47:39 · 813 阅读 · 0 评论
分享