等级标准
- 掌握数据结构及结构的概念;
- 掌握数据结构中的指针和链表;
- 掌握数据结构中的栈;
- 掌握数据结构中的队列;
- 掌握数据结构中的哈希;
- 能够使用上述方法编写指定功能的正确完整的程序。
stack or queue
考试题目
栈和队列都是常用的线性结构,它们都提供两个操作:
Push:加入一个元素。
Pop:弹出一个元素。
不同的是,栈是”先进后出”,而队列则是”先进先出”。
给出一个线性结构的进出顺序,判定这个结构是栈还是队列。
时间限制:1000
内存限制:65535
输入
第一行输入一个整数t,代表有t组测试数据 对于每组测试数据,第一行输入一个整数n,代表操作的次数。 随后输入n行,每行包含两个整数 type val。 当type = 1时,表示该次操作为push操作,val表示进入的数字。当type=2时,表示该次操作为pop操作,val代表出来的数字。 3<=n<=2000
输出
每组测试数据输出一行。 输出该组数据对应的线性结构,”Stack” 或者 “Queue”。 题目保证是栈或者队列的一种。
样例输入
2
6
1 1
1 2
1 3
2 3
2 2
2 1
4
1 1
1 2
2 1
2 2
样例输出
Stack
Queue
参考答案
#include<bits/stdc++.h>
using namespace std;
int main(){
#ifdef LOCAL
freopen("202209_6_1.in", "r", stdin);
#endif
stack<int> s;
queue<int> q;
bool bs = true;
bool bq = true;
int t;
scanf("%d", &t);
for(int i = 1; i <= t; i++){
int n;
scanf("%d", &n);
bs = true; //堆栈数据是否错误标志位
bq = true; //队列数据是否错误标志位
for(int j = 1; j <= n; j++){
int type, val;
scanf("%d%d", &type, &val);
if(type == 1){
//push
if(bs == true) s.push(val);

本文通过具体题目,深入浅出地介绍了栈和队列这两种基本的数据结构,并提供了完整的代码示例。
最低0.47元/天 解锁文章
541

被折叠的 条评论
为什么被折叠?



