🙋什么是数据结构
英语 Data Structrue
回答:在计算机中 存储 和 组织 数据的方式。
- 书架(内存)
- 书(数据)
- 存放的方式(不同的存放方式对应的就是数据结构)
- 竖着一本一本的放
- 横着一本一本的放
- 斜着一本一本的放
- …
数据结构不仅仅是定义了数据元素之间的关系,还定义了能够操作这些数据的方法。
数据结构分类
- 物理结构:数据在计算机内存中真实的存储方式
- 逻辑结构:描述数据元素之间的逻辑关系
逻辑结构
- 线性结构:排成一个线性的序列
- 数组
- 链表:由一个一个节点组成,每个节点会指向下一个节点
- 栈:只有一个出口,因此先进后出,后进先出
- 队列:有两个口,一个是入口,一个是出口。先进先出,后进后出
- 非线性结构
- 树:由一个一个节点组成的一个层次结构。例如 DOM 树就是一个典型的树结构。
- 图:由顶点和边组成的网络结构。
- 集合:Set,存储一组不重复的元素,其实这种数据结构表示的就是数学里面的集合结构,经常涉及的操作:并集、交集、差集…
- 字典:也被称之为映射(Map),存储一组一组的键值对,通过键可以快速的找到值。
物理结构
就只有 2 种,数组和链表。表示的是内存中真实的存储数据的方式:
- 顺序存储
- 链式存储
也就是说,其他的逻辑结构都是依靠这两种结构来存储的。
没有最好的数据结构‼️
没有最好的数据结构,只有最合适的数据结构。
- 数组:在内存中是一段连续的空间。这意味着在数组中查找一个数的时候,速度是很快的。因为只需要做一定的偏移就能够找到。但是要插入或者删除一个数,就比较麻烦,后面所有的元素都需要前移或者后移。
- 链表:每个元素之间并非连续存储,彼此之间会有一个 next 字段指向下一个元素。查找比较麻烦,需要从头节点开始一个一个往后找,但是插入和删除就比较轻松。
-EOF-