本篇文章属于数据结构连载篇的其中之一,共分为上中下三篇。上篇主要介绍线性数据结构数组、链表、栈、队列;中篇介绍树和图;下篇介绍复合数据结构哈希表、跳表等。希望大家持续关注,谢谢。
1 简单介绍
我们所说的数据结构主要是指数据在内存中的存储结构,即程序运行时,我们通过将数据存入不同的容器,通过操作容器内的数据,以完成我们的业务逻辑。
数据结构在物理结构上一般分为顺序结构和链式结构。
所有的数据结构,本质是不是顺序结构就是链式结构,要么就是复合结构。
-
顺序结构(在内存中是连续的地址空间)
-
链式结构(在内存中是非连续的地址空间,通过存储下一个数据的地址指针(Java中就是对象变量)找到下一个数据)
数据结构的逻辑结构,也是我们数据结构系列文章的讲解顺序,下面我仅列出大纲
- 线性结构
- 数组
- 链表
- 栈
- 队列
- 树
- 二叉树
- 非二叉树
- 图
- 复合数据结构
- 哈希表
- 跳表
- 线段树
2 数组
数组是顺序结构的代表,也是线性结构的代表,也是日常我们最常使用的一种数据结构,Java中的ArrayList就是对数组的一种封装,使其可以动态扩容,更方便的增删改查。