2021-06-20 · 1분
BOJ 11047 — 硬币 0
BOJ 11047(硬币 0)贪心硬币问题的简短 write-up。
2021-06-03 · 2분
这篇文章发布已超过两年,内容可能已过时。
BOJ #10845 队列:https://www.acmicpc.net/problem/10845
队列(queue)是计算机的基本数据结构之一,指以先放入的数据先出来的 FIFO(First In First Out)结构进行存储的形式。它与后放入的数据先出来的栈是正相反的概念。

有很多,这些是常用的。
队列主要用于需要按数据输入的时间顺序处理的场景。
BOJ #10845 队列问题

查看更多
#include <stdio.h>
#include <string.h>
int queue[10001];
int queue_size=0;
void push(int push_data){
queue[queue_size] = push_data;
queue_size += 1;
}
int empty(){
if(queue_size == 0){
return 1;
}
return 0;
}
int pop(){
if(empty()){
return -1;
}
queue_size -= 1;
return queue[0];
}
int front(){
if(empty()){
return -1;
}
return queue[queue_size-queue_size];
}
int back(){
if(empty()){
return -1;
}
return queue[queue_size-1];
}
void setting(){
for (int i=0;i<queue_size;i++)
{
queue[i]=queue[i+1];
}
}
int main(){
int N = 0, push_data = 0;
char command[5] = {0,};
scanf("%d",&N);
for(int i=0;i<N;i++){
scanf("%s",command);
if(!strcmp(command,"push")){
scanf("%d",&push_data);
push(push_data);
}
else if(!strcmp(command,"pop")){
printf("%d\n",pop());
setting();
}
else if(!strcmp(command,"empty")){
printf("%d\n",empty());
}
else if(!strcmp(command,"size")){
printf("%d\n",queue_size);
}
else if(!strcmp(command,"front")){
printf("%d\n",front());
}
else if(!strcmp(command,"back")){
printf("%d\n",back());
}
}
return 0;
}
这个和栈一样,c++ 里存在名为 queue 的头文件。
来看看它的用法。
// 声明 queue 头文件
#include <queue>
// 创建 int 型、char 型队列
queue<int> q1;
queue<char> q2;
// 向 int 型队列 q1 添加数字
q1.push(1);
q1.push(2);
q1.push(3);
// 从 int 型队列 q1 删除元素
q1.pop();
queue 的函数们
以 queue<int> Queue 为准
参考:
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=justkukaro&logNo=220510730704
https://life-with-coding.tistory.com/408
https://mygumi.tistory.com/357
https://coding-factory.tistory.com/598
原文(韩语): tistory — 发布于 2021-06-03,已迁移至本博客。本翻译由 AI 协助完成。
…