首页 > 编程语言 >JavaScript 中的 数据结构

JavaScript 中的 数据结构

时间:2024-09-05 20:51:44浏览次数:4  
标签:JavaScript 列表 链表 数组 数据结构 字典

数据结构

数据结构是计算机存储、组织数据的方式。

1.数组

数组是最最基本的数据结构,很多语言都内置支持数组。
数组是使用一块连续的内存空间保存数据,保存的数据的个数在分配内存的时候就是确定的。

2.栈

栈是一种遵循后进先出(LIFO)原则的有序集合在栈里,新元素都接近栈顶,旧元素都接近栈底。
每次加入新的元素和拿走元素都在顶部操作

3.队列

队列是遵循先进先出(FIFO,也称为先来先服务)原则的一组有序的项队列在尾部添加新元素
并从顶部移除元素
最新添加的元素必须排在队列的未尾

4.链表

链表也是一种列表,已经设计了数组,为什么还需要链表呢?
JavaScript中数组的主要问题时,它们被实现成了对象,与其他语言(比如C++Java)的数组相对,效率很低。
如果你发现数组在实际使用时很慢,就可以考虑使用链表来代替。
使用条件:

  • 链表几乎可以用在任何可以使用一维数组的情况中。
  • 如果需要随机访问,数组仍然是更好的选择。

5.字典

字典是一种以键-值对存储数据的数据结构,js中的Object类就是以字典的形式设计的。
JavaScript可以通过实现字典类,让这种字典类型的对象使用起来更加简单,字典可以实现对象拥有的常见功能,并相应拓展自己想要的功能,而对象在JavaScript编写中随处可见,所以字典的作用也异常明显了。

6.散列表

也称为哈希表,特点是在散列表上插入、删除和取用数据都非常快。
为什么要设计这种数据结构呢?
用数组或链表存储数据,如果想要找到其中一个数据,需要从头进行遍历,因为不知道这个数据存储到了数组的哪个位置。
散列表在JavaScript中可以基础数组去进行设计,数组的长度是预先设定的,所有元素根据和该元素对应的键,保存在数组的特定位置,这里的键和对象的键是类型的概念。
使用散列表存储数组时,通过一个散列函数将键映射为一个数字,这个数字的范围是0到散列表的长度即使使用一个高效的散列函数,依然存在将两个键映射为同一个值得可能,这种现象叫做碰撞。
常见碰撞的处理方法有:开链法线性探测法
使用条件:可以用于数据的插入、删除和取用,不适用于查找数据

标签:JavaScript,列表,链表,数组,数据结构,字典
From: https://www.cnblogs.com/xxaxf/p/18399229

相关文章

  • JavaScript中的数据类型-存储差别
    总结声明变量时不同的内存地址分配:简单类型的值存放在栈中,在栈中存放的是对应的值引用类型对应的值存储在堆中,在栈中存放的是指向堆内存的地址不同的类型数据导致赋值变量时的不同:简单类型赋值,是生成相同的值,两个对象对应不同的地址复杂类型赋值,是将保存对象的内存地......
  • 【数据结构】快速排序与归并排序的非递归实现
    ......
  • 快速排序(动图详解)(C语言数据结构)
    快速排序:        快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为:        任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后最左......
  • 【数据结构】排序算法系列——插入排序(附源码+图解)
    插入排序算法思想插入排序的算法思想其实很容易理解,它秉持着一个不变的循环:比较->交换->比较->交换…因为我们排序最终的目的是要得到递增或者递减的数据,那么在原有的数据中,我们可以将数据依次两两进行比较:如果是升序,那么就将较小的放在较大的前面如果是降序,那么就将较大......
  • 【JavaScript学习第六天】—讲述JS学习历程的知识分享!
    前言本篇主要讲述了面向对象开发的特点,对象和类的概念与区别,包括详细讲解一个Tab选项卡案例一、面向对象在引出面向对象之前,我们首先要了解面向过程的概念面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了......
  • Java-数据结构-链表-习题(三)(๑´ㅂ`๑)
    文本目录:​❄️一、习题一:  ▶ 思路: ▶ 代码:​❄️二、习题二: ▶ 思路: ▶ 代码:​❄️三、习题三: ▶ 思路: ▶ 代码:​❄️四、习题四:    ▶ 思路:   ▶ 代码:​❄️五、习题五: ▶ 思路:    ▶ 代码:  ​❄️六、习题六:   ......
  • 数据结构总结心得
    1.在数据结构数据的概念中,数据的最小单位是数据项2.数据结构中的存储结构分为顺序存储结构和链式存储结构  从逻辑上可分为线性结构和非线性结构3.带头结点的单链表head为空的条件是head->next=NULL4.在具有n各个元素的循环队列中,队满时具有n-1个元素5.栈的入栈操......
  • 如何使用JavaScript遍历对象
    一、使用for-in循环——简单直接,快速上手for-in循环是最基础也是最常用的对象遍历方法。它语法简单,适合初学者快速掌握constuser={name:'Alice',age:25,job:'Engineer'};for(constkeyinuser){constvalue=user[key];console.log(`${key......
  • 数据分析2之Pandas的数据结构
     pandas百度介绍pandas是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的......
  • javascript(四)
    六、常用工具类1.Date类方法描述Date()返回当前的日期和时间getDate()返回一个月中的某一天(1-31)getDay()返回一周中的某一天(0-6)getMonth()返回一年中的某一个月(0-11)getFullYear()返回一个四位数年份getYear()被getFullYear()方法代替getHours()......