AKSZ-栈与队列
2024-05-02 17:10:29
发布于:广东
栈
概念
栈_(stack)_又名堆栈,是一种运算受限的##线性表##。
操作
增
void add(int x){
stk[++top]=x; //入栈
}
删
void pop(){
top--; //出栈
}
查
判断是否为空
bool empty(){ //表示栈是否为空
return !top;
}
查询栈顶元素
int query(){ //查询栈顶元素
return stk[top];
}
STL-栈
头文件 stack
- 定义
stack<int> s
- 入栈
s.push(x)
- 出栈
s.pop()
- 栈顶
s.top()
- 大小
s.size()
- 判空
s.empty()
STL-队列
头文件 queue
- 定义
queue<int> q
- 入队
q.push(x)
- 出队
s.pop()
- 队首
q.front()
- 队尾
q.back()
- 大小
q.size()
- 判空
q.empty()
STL-优先队列
头文件 queue
- 定义
priority_queue<int> p_q
大根堆 - 取出最大值
int t = p_q.top()
- 删掉最大元素
p_q.pop()
- 放入一个元素
p_q.push()
- 大小
p_q.size()
- 判空
p_q.empty()
- 定义
priority_queue<int, vector<int>, greater<int> > p_q
小根堆 - 取出最小值
int t = p_q.top()
- 删掉最小元素
p_q.pop()
结构体排序
struct node{
int x, y; //x 大的放在堆面
friend bool operator <(node a, node b){
return a.x < b.x; //把大的x放在前面
// return a.x < b.x; //把小的x放在前面
}
}
这里空空如也
有帮助,赞一个