什么是数据结构
- 计算机存储以及组织数据的方式
- 也能理解为,有一堆数据,他们之间有些特殊的关系。
常见的数据结构
线性表(数组、链表、栈、队列)
树
图
逻辑结构
数据结构从逻辑上可以分成下面几种结构:
集合结构
这种结构注意看,里面有很多元素,但是这些元素之间是没有关系的,类似我们OC
里面的NSSet
、NSMutableSet
- 线性结构
线性结构有什么特点?他们是有顺序的,比如我们OC中的NSArray、NSMutableArray都是线性结构的
- 树状结构
- 树状结构是一个或多个节点的有限集合。``A``为根节点,因为它最大。
-`` D``是``I``和``J``的父节点,``I``和``J``他们是兄弟节点。
- 图形结构
图形接口简称"图",是一种相对复杂的数据结构,任意两个节点之间都可以关联。
存储结构
- 顺序存储结构
这组存储单元内存地址是连续的。
- 链式存储结构
这组存储当有内存地址可以是连续的也可以是不连续的,它不要求逻辑上相邻的元素在物理地址上也相邻。
线性表
-
什么是线性表
- 线性表就是多个具有相同特性的数据元素(节点)组成的,有限而且有序的集合。
当线性表的节点个数为
0
时,我们称之为空表线性表第一个元素称为首节点,最后一个节点称为伪节点。
比如某个线性表的元素
a1、a2、a3、.......、a99
。那么a1.......a98
都是a99
的前驱,a98
是a99
的直接前驱。比如某个线性表的元素
a1、a2、a3、......a99
。那么a2...a98
都是a1
的后继,a2
是a1
的直接后继。线性表的顺序存储结构
用一组地址连续的存储单元依次存储线性表的数据元素
- 线性表的链式存储结构
用一组任意的存储单元存储线性表中的数据元素,它的存储单元可以是连续的,也可以是不连续的。