手写 队列(queue)
作者:
冰中月
,
2022-07-10 10:17:16
,
所有人可见
,
阅读 304
手写 队列
class
写的~
class Queue{
public:
int q[N],head = 0,tail = 0;
void init(){ // 创建,初始化
tail = -1;
}
void push(int x){ // 往队列里插一个数(从最后)
q[++ tail] = x;
}
void pop(){ // 弹出队顶
head ++;
}
int find(int x){ // 查找一个数
for(int i = head;i <= tail;i ++){
if(q[i] == x) return i;
}
return -1;
}
int size(){ // 队列长度
return tail - head + 1;
}
int query(){ // 返回队顶
return q[head];
}
int seek(int x){ // 返回队列中编号为x的数
return q[x];
}
int min_value(){ // 找最小值
int minn = 0x3f3f3f3f;
for(int i = head;i <= tail;i ++){
minn = min(minn,q[i]);
}
return minn;
}
int max_value(){ // 找最大值
int maxx = -0x3f3f3f3f;
for(int i = head;i <= tail;i ++){
maxx = max(maxx,q[i]);
}
return maxx;
}
};
无注释代码:
class Queue{
public:
int q[N],head = 0,tail = 0;
void init(){
tail = -1;
}
void push(int x){
q[++ tail] = x;
}
void pop(){
head ++;
}
int find(int x){
for(int i = head;i <= tail;i ++){
if(q[i] == x) return i;
}
return -1;
}
int size(){
return tail - head + 1;
}
int query(){
return q[head];
}
int seek(int x){
return q[x];
}
int min_value(){
int minn = 0x3f3f3f3f;
for(int i = head;i <= tail;i ++){
minn = min(minn,q[i]);
}
return minn;
}
int max_value(){
int maxx = -0x3f3f3f3f;
for(int i = head;i <= tail;i ++){
maxx = max(maxx,q[i]);
}
return maxx;
}
};
示例
#include <iostream>
#include <cstdio>
using namespace std;
const int N = 1000;
class Queue{
public:
int q[N],head = 0,tail = 0;
void init(){
tail = -1;
}
void push(int x){
q[++ tail] = x;
}
void pop(){
head ++;
}
int find(int x){
for(int i = head;i <= tail;i ++){
if(q[i] == x) return i;
}
return -1;
}
int size(){
return tail - head + 1;
}
int query(){
return q[head];
}
int seek(int x){
return q[x];
}
int min_value(){
int minn = 0x3f3f3f3f;
for(int i = head;i <= tail;i ++){
minn = min(minn,q[i]);
}
return minn;
}
int max_value(){
int maxx = -0x3f3f3f3f;
for(int i = head;i <= tail;i ++){
maxx = max(maxx,q[i]);
}
return maxx;
}
};
int main(){
Queue q;
q.init();
q.push(1);
q.push(2);
q.pop();
cout<<q.size()<<endl;
return 0;
}
我来发个洛谷的题
送我答案吗,谢谢谢谢谢谢~
逃
阿巴阿巴
啊我这道题做过了啊
嗨嗨嗨
不要紧我做过了那是我上课摸鱼偷偷写的阿巴阿巴
下午应该也会摸鱼更点队列的东西
hh
手写的好处就是
# 特别快
确实
而且有一些功能STL没有
addd