目录
栈
定义
定义:所有的插入和删除只在表的一端进行的线性表,即是一种操作受限的线性表。在表中,允许插入和删除的一端叫栈顶(top),不允许插入和删除的另一端叫栈底(bottom)。若给定栈S = (a1,a2,a3,...,an),则a1称为栈底元素,an称为栈顶元素
特点:“先进先出”或“后进后出”,栈中无任何元素时则称为空栈(n=0)
分类:静态栈和动态栈
静态栈:以数组作为基本存储方式
动态栈:类似于链表,区别是动态栈只能从头部插入和删除
操作(进栈(压栈)和出栈(弹栈))
基本操作
结构体类型定义
入栈(压栈)
出栈(数据从下标为1开始存储:栈空的条件为S.top==0。从0开始:S.top == -1)
此处代码默认从1开始
队列
队列是线性表
队列的两种存储方式:顺序存储、链式存储
举例:排队
名词解释:
队尾(rear):这是队列中允许插入新元素的一端。在排队的例子中,新来的人会站在队伍的最后面,这就是队尾
队头(front):这是队列中允许删除元素的一端。在排队的例子中,服务是从队伍的最前面开始的,这就是队头
队列遵循先进先出(FIFO)的原则,即最先进入队列的元素将最先被服务或移除
为了避免假满的情况,可以使用循环队列