栈和队列在嵌入式系统下的C语言实现

devtools/2025/3/19 13:13:37/

一、引言

二、(Stack)

2.1 基本概念

2.2 存储结构与C语言实现

2.3. 的实现

三、队列(Queue)

3.1 基本概念

3.2 存储结构与C语言实现

3.3. 队列的实现

一、引言

        作为计算机科学中两种基础且关键的线性数据结构(Stack)和队列(Queue)凭借其严格的访问规则确定性的操作特性,在嵌入式系统开发中扮演着重要角色。尽管二者在逻辑结构上与线性表相似,但通过先进后出(LIFO)和先进先出(FIFO)的操作约束,它们能够为资源受限的嵌入式环境提供内存高效、时序可预测的解决方案,尤其适用于中断处理、任务调度、通信协议等关键场景。

        本文将从队列的基本概念、存储结构、操作实现,结合嵌入式系统的资源受限性,采用C语言代码示例进行说明。

二、(Stack)

2.1 基本概念

        是一种后进先出(LIFO的线性表,仅允许在顶进行插入(入)和删除(出)操作。其核心操作包括:初始化、判空、取顶元素、入和出

2.2 存储结构与C语言实现

1、顺序:使用数组实现,需预分配固定大小的连续空间。
 

#define MAXSIZE      100                //的大小直接由宏定义指定
typedef struct {
    SElemType   base[MAXSIZE];          // 底指针
    int         top;                    // 顶指针
} SqStack;

初始化时,base和top指向同一位置,入时top递增,出时top递减。顺序特点如下:

  • 存储效率高:顺序通过数组连续存储元素,无额外指针开销,存储密度为100%;适合存储固定规模数据(如已知最大深度的函数调用),内存利用率更高
  • 访问速度快:顶操作(插入/删除)仅需修改top指针,时间复杂度O(1),且无动态内存分配开销;适合高频次、小规模数据操作(如CPU寄存器模拟)。
  • 实现简单:结构体仅需base(底指针)、top(顶指针)

http://www.ppmy.cn/devtools/168346.html

相关文章

基于大数据的酒类商品数据可视化分析系统

【大数据】基于大数据的酒类商品数据可视化分析系统 (完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统充分利用Python与Flask的强大后端处理能力,结合前端Layui框架&#xff0…

密码学 网络安全 科普 网络安全密码技术

网络加密包括密码技术和网络加密方法两个方面。 一、 密码技术   密码技术一般分为常规密码和公钥密码。   常规密码是指收信方和发信方使用相同的密钥,即加密密钥和解密密钥是相同或等价的。比较著名的常规密码算法有DES及其各种变形、IDEA、FEAL、Skipjack…

基于 Docker 和 Flask 构建高并发微服务架构

基于 Docker 和 Flask 构建高并发微服务架构 一、微服务架构概述 (一)微服务架构的优点 微服务架构是一种将应用程序拆分为多个小型、自治服务的架构风格,在当今的软件开发领域具有显著的优势。 高度可扩展性:每个微服务可以独…

在不考虑符号,不考虑溢出的情况下,用循环将字符串转换为整型做乘积 再用字符串形式输出

package test14; import java.util.Scanner; public class chengji { public static void main(String[] args) {/*给定两个以字符串形式表示的非负整数num和num2,返回num1和num2的乘积,他们的乘积也表示为字符串形式在不考虑符号,不考虑溢出的情况下&am…

【Python 算法零基础 1.线性枚举】

我装作漠视一切,以为这样就可以不在乎 —— 25.3.17 一、线性枚举的基本概念 1.时间复杂度 线性枚举的时间复杂度为 O(nm),其中 n是线性表的长度。m 是每次操作的量级,对于求最大值和求和来说,因为操作比较简单,所以 …

删除 Git 历史提交记录中的大文件

git filter-branch 命令的作用是重写Git仓库历史记录,这里具体用于彻底删除大文件。该命令参数解析: git filter-branch --force --index-filter "git rm --cached --ignore-unmatch multimodal-transport-system/data/road.geojson" --prune…

CSS3 背景

CSS3 背景 引言 随着互联网技术的发展,网页设计日益注重用户体验和视觉效果。CSS3 作为 Web 标准的一部分,提供了丰富的样式和动画效果,使得网页设计更加灵活和生动。其中,CSS3 背景功能是网页设计中不可或缺的一部分&#xff0…

【愚公系列】《高效使用DeepSeek》014-行程计划

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…