【软考】9.1 顺序表/链表/栈和队列

《线性结构》

  • 顺序存储和链表存储
  • 每个元素最多只有一个出度和一个入度,表现为一条线状
  • 链表存储结构:每个节点有两个域,即数据,指针域(指向下一个逻辑上相邻的节点)
  • 时间复杂度:与其数量级成正比
  • (空间):链表浪费空间
  • (时间):增删改查,链表效率更高
  • (不改变结构操作时,即读取查找):顺序表效率更高
  • 栈和队列
  • 栈:先进后出;分队头和队尾
  • 队列:先进先出;只有栈顶能进出
  • 循环队列
  • 入队时,修改队尾:
    Q.rear = (Q.rear +1)% MAXSIZE
  • 出队时,修改队头:
    Q.front= (Q.front +1)% MAXSIZE
  • 队列为空时,则:Q.rear == Q.front
  • 队列为满时,则:Q.rear == Q.front
  • 区别队列空和队列满的情况:
  • 队列满:队列的尾指针所指位置的下一个位置是队头指针;即
    (Q.rear +1)% MAXSIZE = Q.front
  • 队列空:头、尾指针的值相同;即
    Q.rear = Q.front

  • 出栈时没有声明是否有入栈,则输出元素序列不确定
  • 全部:所有元素一次性进入队列
  • A中入栈顺序必须是e1,e2,B中必须是e3,e4;由于A和B是相互独立的,则出栈顺序可自由组合
  • 队尾的指针:Z所在的指针
  • 队尾元素的指针:Z指向的下一个元素所在的指针
相关推荐
不会就选b7 小时前
算法日常・每日刷题--<贪心>25
数据结构·算法
Cccp.12311 小时前
【leetcode】(七)前缀树和贪心算法
数据结构·leetcode·贪心算法
Logic10113 小时前
C语言/数据结构位运算题解:异或XOR找出多任务下载器中的“独特下载速度“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
优质酸酸乳16 小时前
力扣100题之21合并两个有序链表
算法·leetcode·链表
yexianglunbai16 小时前
Redis 详解:从核心数据结构到高可用架构实战
数据结构
bro_Java66617 小时前
《栈与队列:数据结构的“双生花”》
java·数据结构·编辑器
sogw-三叶草️18 小时前
LeetCode 989. 数组形式的整数加法
数据结构·算法
yi01118 小时前
DAY 14: LeetCode 394. 字符串解码|递归和栈到底怎么处理嵌套?
数据结构·笔记·python·算法·leetcode
张小姐的猫19 小时前
【AI大模型接入SDK】 —— 前端页面 & 项目总结与拓展
前端·数据结构·数据库·c++·人工智能·chatgpt
sunburn-20 小时前
Java 排序算法详细教学:从冒泡排序到快速排序
java·开发语言·数据结构·ide·算法