在JavaScript中,数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,是带有结构特性的数据元素的集合。常用的数据结构有:数组、列表、栈、队列、链表、字典、集合等等。
本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。
什么是数据结构?
在计算机科学中,数据结构(英语:data structure)是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。数据结构起源于程序设计,它不是使我们怎么学会编码,而是为我们提供一种编程思想,具有更好的思路。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
数据结构能做什么?
-
有效的管理数据对象
-
提升运算性能
数据结构的概念定义
数据:
数据:是用来描述一种客观事物的符号(字符串、数字、json、声音、图片…)数据元素:有一定意义的最基本的单位,当我们使用计算机来处理数据的时候,数据元素通常被我们用作一个整体来处理,这个整体又称记录数据对象:是指性质相同的数据元素的集合数据项:是组成数据的最小单位
结构:
数据元素相互之间的关系称之为结构。
结构又分两种:
-
逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关
-
存储结构:指数据的逻辑结构在计算机存储空间的存放形式
所以,一种数据结构可表示成一种或多种存储结构
逻辑结构:
集合:集合中的数据成员是无序的松散的关系,且每个数据成员在集合中不能重复线性结构:数据结构中的元素存在一对一的相互关系非线性结构:数据结构中的元素存在一对多或多对多的相互关系
存储结构:
顺序存储:数组就是典型的顺序存储结构链式存储:链表采用的就是链式存储索引存储:索引存储的优点是检索速度快,但是需要增加附加的索引表,会占用较多的存储空间散列存储:散列存储使得检索、增加、删除节点的操作都很快,缺点是解决散列冲突会增加时间和空间的开销,常用的解决散列冲突的方法有开链法和线性探测法
常用的数据结构
数组:
一个存储元素的线性集合(collection),元素可以通过索引来任意存取,索引通常是数字,用来计算元素之间存储位置的偏移量。
列表:
人们日常生活中经常使用列表:待办事项列表、购物清单、十佳榜单、最后十名榜单等。
栈:
是一种高效的数据结构,因为数据只能在栈顶添加或删除,所以这样的操作很快,而且容易实现。
队列:
队列用于存储按顺序排列的数据,先进先出,这点和栈不一样
链表:
链表是由一组节点组成的集合。每个节点都使用一个对象的引用指向它的后继。指向另一个节点的引用叫做链
字典:
字典是一种以键- 值对形式存储数据的数据结构,就像电话号码簿里的名字和电话号码一样。
树:
树是计算机科学中经常用到的一种数据结构。树是一种非线性的数据结构,以分层的方式存储数据。
树被用来存储具有层级关系的数据,比如文件系统中的文件;树还被用来存储有序列表。
图:
图由边的集合及顶点的集合组成。
散列表:
散列是一种常用的数据存储技术,散列后的数据可以快速地插入或取用。散列使用的数据结构叫做散列表。
集合:
集合(set)是一种包含不同元素的数据结构。集合中的元素称为成员。
集合的两个最重要特性是:首先,集合中的成员是无序的;其次,集合中不允许相同成员存在。
常用的数据结构会在后续陆续逐个击破!
【推荐学习:javascript高级教程】