线性表(备考版)

1. 存储结构

  • 顺序表、链表
  • 链表:单链表、循环链表、双向链表。
  • 空间性能:

  1. 存储密度:顺序存储的存储密度=1,更优;链式存储的存储密度<1;
  2. 容量分配:顺序存储事先确定;链式存储动态改变、更优。
  • 时间性能:

  1. 查找运算:顺序存储O(n/2),链式存储O(n/2);
  2. 读运算:顺序存储O(1)更优;链式存储O([n+1]/2),其中最好情况为1,最坏情况为n
  3. 插入运算:顺序存储O(n/2)最好情况为0,最坏情况为n;链式存储O(1)优。
  4. 删除运算:顺序存储O([n-1]/2),链式存储O(1)优。
  • 插入删除操作:

  1. 顺序存储在插入元素前要移动元素挪出空的存储单元,再插入元素;删除元素同理。
  2. 链表的基本操作:单链表删除节点、单链表插入节点、双向链表删除节点、双向链表插入节点。

2. 栈和队列

  • 栈:只允许在一端进行插入和删除操作
  • 队列:先进先出的线性表,只允许在表的一端插入元素(队尾),在表的另一端删除元素(队头)
  • 循环队列:

  1. 队空的条件:head = tail
  2. 队满的条件:(tail + 1)% size = head

3. 串

  • 串:仅由字符组成的有限序列,取自范围受限的线性表。

  1. 空串:长度为0的串,不包含任何字符。
  2. 空格串:由一个或多个空格组成的串。
  3. 子串:空串是任意串的子串。
  4. 串相等:两个串长度相等且对应位置上的字符也相同。
  5. 串比较:两个串比较大小以字符的ASCII码值为依据(ASCII码值大,串大)
  • 对串进行基本操作:

  1. 赋值操作:将串 t赋值给串s。
  2. 连接操作:将串t接续在串s的尾部,形成一个新串。
  3. 求串长:返回串的长度。
  4. 串比较:比较两个串的大小。
  5. 求子串:返回串s中从start开始的,长度为len的字符序列
  • 串的存储结构:

  1. 串的顺序存储:定长存储结构。
  2. 串的链式存储:块链。 (子串的定位操作是串的模式匹配,子串也称模式串)
  • 存储地址的计算:

  1. 一维数组:a[i]的存储地址为 a + i*len
  2. 二维数组a[m][n]:a[i][j]按行存储地址是a+(i*n+j)*len;按列存储地址a+(i+j*m)*len

4. 矩阵

稀疏矩阵:上三角矩阵和下三角矩阵

5.广义表

  • 广义表:n个表元素组成的有限序列,线性表的推广。
  • 记作LS=(a0,a1,...,an)LS是表名,n是广义表的长度(最外层包含的元素个数)递归定义的广义表的重数为表的深度,空表的深度为1
  • 基本运算:取表头head(LS),取表尾tail(LS)
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值