javascript数据结构 - 前端笔记-一,数据结构分类 ①,数组 (线性表【数组】存储一些列同类型的值,JavaScript中是数组是特殊的可以保存不同类型【貌似javascript中的数组也是特殊的对象】) ②,栈...

学习笔记

点滴记忆
回忆过往
首页>> web前端 >>javascript数据结构 - 前端笔记
2021-10-11
分类: web前端

javascript数据结构

文章作者:痴迷

一,数据结构分类 ①,数组 (线性表【数组】存储一些列同类型的值,JavaScript中是数组是特殊的可以保存不同类型【貌似javascript中的数组也是特殊的对象】)   &......

一,数据结构分类
①,数组 (线性表【数组】存储一些列同类型的值,JavaScript中是数组是特殊的可以保存不同类型【貌似javascript中的数组也是特殊的对象】)    
②,栈   (先进后出的线性表【数组】)
③,队列   (先进先出的线性表【数组】
④,链表   (非顺序的存储结构,通过指针链接首尾)
⑤,哈希表   (也叫【散列表】,是通过key和value组成的无序的一组集合)
⑥,树   (是一个有根节点【root】和n个子节点组成的数据结构
⑦,堆   (是一个特殊的树结构)
⑧,图    (是由顶点和边组成的数据结构)

二,数据结构详解

1. 数组
数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的如下图:
    
var arr = [1,'2',{},[]]

注意:在js中可以保存不通的数据类型和自动扩容
优点:1.按照索引查元素快,2.按照索引遍历数组方便,因为数组在内存中存储是连续的
缺点:1.添加,删除的操作慢,因为要移动其他元素,2.数组的大小无法扩容(javascript不存在),3.数组只能存储一种数据类型(javascript不存在)
适用场景:频繁查询,很少删除,增加(尾部删除,增加例外,删除数组中间部位会移动元素的,造成大量内存堆积操作)

2.栈
栈是一种特殊的线性表,栈是遵从先进后出的原则的线性表【线性表:可以理解为数组】如下图:

栈就像是叠盘子一样,先放进的在最底下,拿出来的时候拿最上面的

适用场景:遵循先进后出的原则的场景,如:进制转换,递归

3.队列
队列也是一种特殊的线性表,遵从先进先出,和栈相似切原则相反,只能头出,尾进
双端队列,就是头尾都能出的队列


适用场景:遵循先进先出的原则的场景,如:在多线程阻塞队列管理中非常适用

4.链表
链表是非顺序的存储结构,通过指针链接首尾的数据结构

优点:链表是可以任意加减元素的,因为链表加减元素,只需要改变指针的指向
缺点:查找和遍历链表 非常耗时,因为需要通过指针,循环查找
适用场景:数据量较小,需要频繁增加,删除的操作场景

5.哈希表
散列表,也叫哈希表,是根据关键码和值 (key和value) 直接进行访问的数据结构,通过key和value来映射到集合中的一个位置,这样就可以很快找到集合中的对应元素


6.树
是一个有根节点【root】和n个子节点组成的数据结构

7.堆
堆是一个特殊的树结构,可以看做一棵树的数组对象

8.图

图是由顶点和边组成的数据结构






×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

打赏作者
版权所有,转载注意明处:前端笔记 » javascript数据结构

网友评论(0)