认识:
栈和队列是线性表的子集
(是插入和删除位置受限的线性表)
一.栈:
1.什么是栈?
栈是一种只能在一端插入或删除操作的线性表
2.栈的特点?
后进先出
3.栈的存储结构
3.1顺序栈
假设栈的元素个数最大不超过正整数MaxSize
元素都具有同一数据类型,ElemType
typedef struct
{
ElemType data[MaxSize]; //存放栈的元素
int top; //栈顶指针
}SqStack; //声明顺序栈类型
3.2链栈
链栈中数据节点的类型LiStack定义如下:
tydedef struct linknode
{
ElemType data;//数据域
struct linknode * next;//指针域
} ListStack;//声明链栈节点类型
二. 队列
1.什么是队列?
仅限于在表的一端插入,另一端删除的线性表
2.队列的特点?
先进先出
3.队列的存储结构
3.1顺序队
假设队列的元素个数最大不超过正整数MaxSize
元素都具有同一数据类型,ElemType
typedef struct
{
ElemType data[MaxSize];
int front,rear;//队首和队尾指针
}SqQueue; //声明顺序队的类型
2.链队
链队中的数据节点的类型QNode定义如下:
typedef struct qnode
{
ElemType data;
struct qnode * next;
}QNode; //声明链队数据节点的类型
链队节点的类型LiQueue定义如下:
typedef struct
{
QNode * front;//队头指针
QNode * rear;//队尾指针
}LiQueue;//声明链队类型