iOS逆向-数据结构

数据结构简介

什么是数据结构
  • 计算机存储以及组织数据的方式
  • 也可以理解为,有一堆数据,他们之间有些特殊的关系.
常见的数据结构
  • 线性表(数组 链表 栈 队列)
逻辑结构

数据结构从逻辑上看,分为下面几种结构:

  • 集合结构

    iOS逆向-数据结构_第1张图片
    集合结构.png
    • 这种结构注意看,里面有很多元素,但是这些元素之间是没有什么关系的 类似我们OC里面的NSSet NSMutableSet
  • 线性结构

    iOS逆向-数据结构_第2张图片
    线性结构.png
    • 线性结构有什么特点呢?他们是有顺序的.这种是不是见过,我们OC中的NSArray NSMutableArray都是线性结构的
  • 树状结构

    iOS逆向-数据结构_第3张图片
    树状结构.png
    • 树状结构是一个或多个节点的有限集合。A为根节点,因为它最大! D是I&J的父节点.I和J他们是兄弟节点.
  • 图形结构


    iOS逆向-数据结构_第4张图片
    图形结构.png
    • 图形结构简称"图",是一种相对复杂的数据结构.任意两个节点之间都可以关联.
存储结构

数据结构从逻辑上可以分为上面几种,但是这些数据统统都是要存放到内存里面去的,那么内存中存放数据也有不一样的结构.

  • 顺序存储结构


    顺序存储结构.png
    • 这组存储单元内存地址是连续的.
  • 链式存储结构

    iOS逆向-数据结构_第5张图片
    链式存储结构.png
    • 这组存储单元内存地址可以是连续的,也可以是不连续的.它不要求逻辑上相邻的元素在物理位置上也相邻.
线性表
  • 什么是线性表
    • 线性表就是多个具有相同特性的数据元素(节点)组成的,有限而且有序的集合
    • 当线性表的节点个数为0时,我们称之为空表
    • 线性表第一个元素称为首节点,最后一个元素称为尾节点
    • 比如某个线性表的元素a1 a2 a3 a4 ......a99 。那么a1...a98 都是a99的前驱,a98是a99的直接前驱
    • 比如某个线性表的元素a1 a2 a3 a4 ......a99 。那么a2...a98 都是a1的后继,a2是a1的直接后继
  • 线性表的顺序存储结构
    • 用一组地址连续的存储单元依次存储线性表的数据元素
顺序存储结构.png
  • 线性表的链式存储结构
    • 用一组任意的存储单元存储线性表中的数据元素,它的存储单元可以是连续的,也可以是不连续的
iOS逆向-数据结构_第6张图片
链式存储结构.png

你可能感兴趣的:(iOS逆向-数据结构)