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放在前面
}
}
这里空空如也






有帮助,赞一个