认识: 栈和队列是线性表的子集 (是插入和删除位置受限的线性表)
一.栈:
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;//声明链队类型