数据结构是什么?
这可能要先知道,什么是数据?
我认为,数据是描述客观事物的载体,反映客观事物之间的关联关系。
比如一个人的姓名、性别、年龄、身高等;再比如一个学生之与他所在的学校这种关联信息。
计算机当中数据的存储最底层的是计算机的硬件,硬盘和内存等。数据会永久的保存在硬盘当中的,当计算机读取时,会把数据从硬盘加载到内存当中,以便快速读取。
计算机的底层,为我们封装了数据在硬盘和内存中存储数据的具体细节,并为我们提供了存储的抽象,以及提供了相关的算法以操作数据。
存储结构:
- 顺序存储方法: (basic)
- 指的是物理上(内存)连续的存储空间。
- 使逻辑上相邻的元素,在物理上的位置也是相邻的。
- 实现上,我们可以用编程语言中的:
数组
- 链式存储方法: (basic)
- 指的是物理上(内存)不连接的存储空间。
- 就是逻辑结构上相邻的元素,在物理上的位置并不一定相邻。
- 元素间的逻辑关系,通过
指针
来表示
- 索引存储方法:
- 基于顺序存储或链式存储,并附加索引表(关键字 + 地址)
- 面向查找操作
- 比如
数据库中的索引
- 散列存储方法:
- 基于顺序存储或链式存储,以元素关键字,通过hash算法等方法算出存储位置
- 面向查找操作
- 比如
java 中的 HashMap
逻辑结构:
- 线性结构
- 线性表
- 堆栈
- 队列
- 树结构
- 二叉树
- 多叉树
- 图结构