数据结构

什么是数据结构

  • 计算机存储以及组织数据的方式
  • 也能理解为,有一堆数据,他们之间有些特殊的关系。

常见的数据结构

  • 线性表(数组、链表、栈、队列)

逻辑结构

  • 数据结构从逻辑上可以分成下面几种结构:

  • 集合结构

集合结构.png

这种结构注意看,里面有很多元素,但是这些元素之间是没有关系的,类似我们OC里面的NSSetNSMutableSet

  • 线性结构
线性结构.png

线性结构有什么特点?他们是有顺序的,比如我们OC中的NSArray、NSMutableArray都是线性结构的

  • 树状结构
树状结构.png
- 树状结构是一个或多个节点的有限集合。``A``为根节点,因为它最大。

-`` D``是``I``和``J``的父节点,``I``和``J``他们是兄弟节点。
  • 图形结构
图形结构.png

图形接口简称"图",是一种相对复杂的数据结构,任意两个节点之间都可以关联。

存储结构

  • 顺序存储结构
顺序存储结构.png

这组存储单元内存地址是连续的。

  • 链式存储结构
链式存储结构.png

这组存储当有内存地址可以是连续的也可以是不连续的,它不要求逻辑上相邻的元素在物理地址上也相邻。

线性表

  • 什么是线性表

    • 线性表就是多个具有相同特性的数据元素(节点)组成的,有限而且有序的集合。
  • 当线性表的节点个数为0时,我们称之为空表

  • 线性表第一个元素称为首节点,最后一个节点称为伪节点。

  • 比如某个线性表的元素a1、a2、a3、.......、a99。那么a1.......a98都是a99的前驱,a98a99的直接前驱。

  • 比如某个线性表的元素a1、a2、a3、......a99。那么a2...a98都是a1的后继,a2a1的直接后继。

  • 线性表的顺序存储结构
    用一组地址连续的存储单元依次存储线性表的数据元素

顺序存储结构.png
  • 线性表的链式存储结构

用一组任意的存储单元存储线性表中的数据元素,它的存储单元可以是连续的,也可以是不连续的。

你可能感兴趣的:(数据结构)