写在前面
- 数据结构是工程师编程通识之一,不管你是 JavaScript 工程师,还是 Java、python 工程师,对数据结构理解够深,才能写出更简洁、更优雅的程序代码。这里我用 JavaScript 语言来写数据结构示例,希望对你有所帮助。
什么是数据结构
- 在计算机科学中,数据结构(data structure)是计算机存储、组织数据的方式。
- 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
数据结构概念定义
- 数据:是用来描述一种客观事物的符号,分为数据元素、数据对象、数据项等。
- 结构:数据元素相互之间的关系,分为逻辑结构和存储结构两大类。
- 数据逻辑结构:指数据元素之间的前后件关系,分为集合、线性结构、非线性结构等。
- 数据存储结构:指数据的逻辑结构在计算机存储空间的存放形式,分为顺序结构、链式结构、索引结构、散列结构等。
数据结构有哪些
- 列表 :
一个存储元素的线性集合(collection),元素可以通过索引来任意存取,索引通常是数字,用来计算元素之间存储位置的偏移量。
示例代码
- 队列 :
用于存储按顺序排列的数据,先进先出。
示例代码
- 栈 :
一种高效的数据结构,数据只能在栈顶添加或删除,先进后出。
示例代码
- 链表 :
由一组节点组成的集合,每个节点都使用一个对象的引用指向它的后继。
示例代码
- 字典 :
以键 - 值对形式存储数据的数据结构。
示例代码
- 散列表 :
散列是一种常用的数据存储技术,散列后的数据可以快速地插入或取用。
示例代码
- 集合 :
一种包含不同元素的数据结构。集合中的成员是无序的,集合中不允许相同成员存在。
示例代码
- 树 :
一种非线性的数据结构,以分层的方式存储数据,被用来存储具有层级关系的数据。
示例代码
- 图 :
由边的集合及顶点的集合组成。
示例代码
- 上面对常用的 9 种数据结构做了一个简要的介绍。更好的理解数据结构,还是看图解、看示例源码比较好。
参考资料
- https://book.douban.com/subject/25945449/
- https://book.douban.com/subject/27129352/
- https://www.cnblogs.com/shuoer/p/8424848.html
- https://segmentfault.com/a/1190000010343508