数据结构 - 线性表
2016-06-05 18:39:30 0 举报
AI智能生成
线性表,又称顺序表,是最基本的数据结构之一。它是由一组相同类型的数据元素组成,这些元素在内存中以连续的存储空间存放,并且每个元素都有一个唯一的序号,称为元素的索引。线性表的操作主要包括插入、删除和查找等。线性表的特点是结构简单,访问方便,但插入和删除操作需要移动大量元素。常见的线性表有数组和链表等。线性表的应用非常广泛,例如在计算机科学中的排序算法、堆栈和队列等都是基于线性表实现的。
作者其他创作
大纲/内容
顺序表(顺序存储)
特点
存储的逻辑相邻, 物理相邻
存储密度高, 预先分配总够的长度空间
可以随机存取
插入和删除操作, 会导致到大量的数据移动
如果要扩充空间, 需要创建一个更大的存储空间, 把原所有数据都复制到新的存储空间中
适用场景
静态数据, 创建后很少进行插入和删除操作
栈与队列
栈与队列 说明
操作受到限制的线性表
插入和删除操作, 都要控制在线性表的有单或者两端进行
适用场景
满足 先进后出, 先进先出 的实际场景
栈(特殊的线性表)
特点
先进后出 FILO
入栈, 出栈, 只能在栈顶(表尾)
栈的插入和删除操作(只允许队尾进行)
栈与线性表的区别
线性表的插入和删除操作(可以在任意位置)
与线性表的关系
表头 -> 栈底
表尾 -> 栈顶
实现
顺序栈
链栈
队列(特殊的线性表)
特点
先进先出 FIFO
队列, 插入在队尾, 删除在队首
与线性表的关系
表头 -> 队首
表尾 -> 队尾
实现
顺序队列
链队列
栈与队列各自的特点
相同点
都是线性结构
插入都在队尾
实现都基于顺序或链式
插入和删除时间代价大致相同
不同点
删除元素位置不同
栈在队尾
队列在队首
应用场景不同
顺序栈可以多栈空间共享, 顺序队列不可以
串与数组
串与数组 说明
串(特殊的的线性表)
特点
字符串(串)是一种特殊的线性表
空串: 长度 n 为 0 的串,
空白串: 由一个或多个空白子串组成的字符串
子串: 任意个连续的字符组成的子序列成为该串的子串
实现
顺序存储串
链式存储粗串
数组
特点
具有相同类型的数据元素的集合
一维数组
顺序存储结构的线性表(顺序表就是一维数组)
二维数组
称为矩阵
定义为"其数据元素为一维数组"的线性表
矩阵
特殊矩阵的压缩存储
对称矩阵的压缩存储
三角矩阵的压缩存储
对角矩阵的压缩存储
稀疏矩阵的压缩存储
稀疏矩阵的三元组表存储
稀疏矩阵的十字链表存储
链表(链式存储)
链表 说明
所有链表的确切含义, 取决于各节点指向的上下文
采用链式存储方式, 依旧使用线性表, 就是链式存储
不需要预先分配从存储空间
适用场景
经常变动的数据
单链表
特点
单链表的每个节点, 包含存储的数据, 包含邻接点的指针 ->
单链表的每个节点, 指向后继节点的指针, 组成一个链 ...
线性表的第一个元素存储的地址, 作为起始地址, 称为头指针 head
单链表最后一个节点, 叫做尾节点, 没有后继, 所以指向 Null
单链表通过头 head 指针来唯一标识, 头 head 为空, 则单链表为空
循环链表
特点
循环链表最后一个节点, 的后续指针指向第一个节点, 形成一个环装链表
其他相同
双向链表
特点
双向链表的每个节点. 一个指向前驱节点, 一个指向后继节点
其他相同
0 条评论
下一页