一、引言
二、栈(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;