一、栈的特点(栈顶栈底)
栈 | 只允许在同一端进行插入和删除的线性表 |
---|---|
栈顶(top) | 允许插入删除 |
栈底(bottom) | 封死 |
线性表 | 任意位置进、任意位置出 |
---|
FILO(First In Last Out 先进后出)
顺序栈(用数组实现栈的存储)
#define MAX 100
typedef int datatype
typedef struct
{
datatype data[MAX];
int top; //线性表的实际长度
默认bottom=0
}seqstack;
二、栈的基本函数
top的位置
线性表基本操作
1.进栈
2.用于输出的子函数
3.主函数
4.退栈
三、栈的应用
括号匹配检验
1.三种括号
2.进制转换(10转2.8.16/2.8.16转10)
十进制转二进制
十进制转2、8、16
四、队列的特点
队头(front删除)/队尾(rear插入)
队头(front) | 队尾(rear) |
---|---|
删除 | 插入 |
#define MAX 100
typedef int datatype
typedef struct
{
datatype data[MAX];
int front;
int rear;
}sequeue;
五、队列的基本函数
//插入
sq->data[sq->rear]=x;
sq->rear++;
//删除
sq->front++;
六、循环队列
取余运算
满 | 空 |
---|---|
(sq->rear+1)%MAX==sq->front | sq->rear==sq->rear |