数据结构与算法2.1_MOOC笔记

2.1线性表

简称表,是零个或多个元素的有穷序列

  • 表目:表中的元素

  • 索引(下标):i称为ki的下标

  • 表的长度:所含元素个数n

  • 空表:长度为0(n=0)

特点:操作灵活,其长度可以增长、缩短

适用于小规模数据

  • 线性结构

    • 为前驱/后继关系,有反对称性和传递性
    • 有一个唯一的开始节点,没有前驱,有一个唯一的直接后继
    • 有一个唯一的终止节点,有一个唯一的直接前驱,没有后继
    • 其它节点皆称为内部节点,每一个内部节点都有一个唯一的直接前驱,也有一个唯一的直接后继
    • <ai,ai+1>ai是ai+1的前驱,ai+1是ai的后继

    特点:

    • 均匀性:元素必定具有相同的数据类型和长度
    • 有序性:各元素之间的相对位置是线性的

    按复杂程度划分

    • 简单的:线性表、栈、队列、散列表
    • 高级的:广义表、多维数组、文件......

    按访问方式划分

    • 直接访问型(Direct Access):根据下标访问(数组)
    • 顺序访问型(Sequential Access):顺序查找(链表)
    • 目录索引型(Directory Access):有效索引(字典,散链)

    按操作划分

    • 线性表
      • 所有表目都是同一类型节点的线性表
      • 不限操作形式
      • 根据存储的不同分为:顺序表,链表
    • 栈(LIFO,Last In First Out)
      • 插入和删除操作都限制在表的同一端进行
    • 队列(FIFO,First In First Out)
      • 插入操作在表的一段,删除操作在另一端
  • 线性表逻辑结构

    主要属性包括:

    • 线性表的长度
    • 表头,表尾
    • 当前位置
  • 顺序表,链表(不同存储)

    顺序表

    • 按索引值从小到大存放在一片相邻的连续区域
    • 紧凑结构,存储密度为1
    • 物理关系即为逻辑关系,不需要额外空间

    链表

    • 单链表(需要指针,额外开销)
    • 双链表
    • 循环链表
  • 栈,队列(不同操作)

    栈:插入和删除都限制在表的同一端进行

    ​ 应用于深度搜索

    队列:插入操作在表的一段,删除操作在另一端

    ​ 应用于广度优先搜索

  • 线性表的运算

    • 建立,清除线性表
    • 插入,删除,修改元素
    • 排序,检索

猜你喜欢

转载自www.cnblogs.com/stanoswald/p/11986896.html