例3.1 猜猜数据结构 UVa11995
1.标题叙述性说明:点击打开链接
2.解题思路:据来推測一种可能的数据结构,备选答案有“栈,队列。优先队列”。结果也可能都不是或者不确定。
STL中已经有这三种数据结构了,因此直接模拟题意,输出时推断是否相应就可以。注意:弹出时要推断一下是否已经为空。
3.代码:
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<algorithm>
#include<string>
#include<sstream>
#include<set>
#include<vector>
#include<stack>
#include<map>
#include<queue>
#include<deque>
#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<ctime>
#include<functional>
using namespace std; stack<int>s;
queue<int>q;
priority_queue<int>p;
char st[][20] = { "impossible", "priority queue", "queue","not sure" , "stack", "not sure","not sure" ,"not sure" };
void clear()
{
while (!s.empty())s.pop();
while (!q.empty())q.pop();
while (!p.empty())p.pop();
}
void add(int x)
{
s.push(x);
q.push(x);
p.push(x);
}
void pop()
{
if (!s.empty())s.pop();
if (!q.empty())q.pop();
if (!p.empty())p.pop();
}
int main()
{
//freopen("t.txt", "r", stdin);
int n;
while (~scanf("%d", &n))
{
clear();
int ok1, ok2, ok3;
ok1 = ok2 = ok3 = 1;
for (int i = 0; i < n; i++)
{
int a, b;
cin >> a >> b;
if (a == 1)add(b);//统一加入
else
{
if (s.empty() || s.top() != b)
ok1 = 0;
if (q.empty() || q.front() != b)
ok2 = 0;
if (p.empty() || p.top() != b)
ok3 = 0;
pop();//统一弹出
}
}
int x = (ok1 << 2) | (ok2 << 1) | ok3;//编码,方便输出结果
printf("%s\n", st[x]);
}
return 0;
}
版权声明:本文博客原创文章。博客,未经同意,不得转载。
例3.1 猜猜数据结构 UVa11995的更多相关文章
- 【暑假】[实用数据结构]UVa11995 I Can Guess the Data Structure!
UVa11995 I Can Guess the Data Structure! 思路:边读边模拟,注意empty的判断! 代码如下: #include<iostream> #inclu ...
- UVa 11995:I Can Guess the Data Structure!(数据结构练习)
I Can Guess the Data Structure! There is a bag-like data structure, supporting two operations: 1 x T ...
- 关于栈、队列、优先队列的应用——UVa11995
这本来是上一篇博客里的内容,但不知道什么原因breakdown了……我就简单放上一道题好了 题意:这道题的题目是“猜猜数据结构”,题意就是给你一些输入输出数据,让你根据这些数据判断是什么数据结构.要猜 ...
- 最短路径算法之Dijkstra算法(java实现)
前言 Dijkstra算法是最短路径算法中为人熟知的一种,是单起点全路径算法.该算法被称为是“贪心算法”的成功典范.本文接下来将尝试以最通俗的语言来介绍这个伟大的算法,并赋予java实现代码. 一.知 ...
- 如何编写一个JSON解析器
编写一个JSON解析器实际上就是一个函数,它的输入是一个表示JSON的字符串,输出是结构化的对应到语言本身的数据结构. 和XML相比,JSON本身结构非常简单,并且仅有几种数据类型,以Java为例,对 ...
- tomcat内存溢出问题记录
问题说明:公司内网环境中部署的jenkins代码发版平台突然不能访问了,查看tomcat的catalina.out日志发现报错如下: [root@redmine logs]# tail -f /srv ...
- OutOfMemoryError系列(1): Java heap space
每个Java程序都只能使用一定量的内存, 这种限制是由JVM的启动参数决定的.而更复杂的情况在于, Java程序的内存分为两部分: 堆内存(Heap space)和 永久代(Permanent Gen ...
- C++下遍历文件夹
编写程序遍历文件夹及其子文件夹下所有文件,并输出到标准输出流或者文件流. 1. 先考虑在单层目录下,遍历所有文件.以C:\WINDOWS为例: 用到数据结构_finddata_t,文件信息结构体的指针 ...
- 最短路径之迪杰斯特拉算法的Java实现
Dijkstra算法是最短路径算法中为人熟知的一种,是单起点全路径算法.该算法被称为是“贪心算法”的成功典范.本文接下来将尝试以最通俗的语言来介绍这个伟大的算法,并赋予java实现代码. 一.知识准备 ...
随机推荐
- JVM调优总结(十二)-参考资料
能整理出上面一些东西,也是因为站在巨人的肩上.下面是一些参考资料,供大家学习,大家有更好的,可以继续完善:) · Java 理论与实践: 垃圾收集简史 · Java SE 6 HotSpot[tm] ...
- MySQL中innodb引擎分析(初始化)
MySQL的存储引擎是以插件形式工作的,这应该是MySQL的一大特色了吧! 依据<深入理解MySQL>的内容,5.1版本号时存储引擎的插件化都还不是彻底,确切的说是刚加入的特性.为MySQ ...
- java模拟实现生产者---消费者问题
本文章为小编原创,请尊重文章的原创性,转载请注意写明转载来源:http://blog.csdn.net/u012116457 已知技术參数: 生产者消费者问题,描写叙述一组生产者向一组消费者提供产品/ ...
- XLSTransformer生成excel文件简单演示样例
项目结构图: 项目中所用到的jar,能够到http://www.findjar.com/index.x下载 ExcelUtil类源代码: package util; import java.io.IO ...
- 【linux kernel】 softirq 软中断讨论
欢迎转载,转载时需保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http:// ...
- InPageError c000009c使用chkdsk修复磁盘
chkdsk e: /f /r 回车运行就表示修复e盘上的错误,并找到坏扇区恢复可读取的信息. 其它: [Path} FileName] 指定需要 chkdsk 检查碎片整理的文件或文件集的位置和名称 ...
- Buenos Aires和Rio de Janeiro怎么发音?
Buenos Aires和Rio de Janeiro怎么发音?_百度知道 Buenos Aires和Rio de Janeiro怎么发音? 2009-09-25 08:58 zd029 ...
- POJ - 1006 Biorhythms 周期相遇 两个思路程序
Description Some people believe that there are three cycles in a person's life that start the day he ...
- AJAX实现类似百度的搜索提示,自动补全和键盘、鼠标操作
<script type="text/javascript"> $(document).ready(function(){ var highlightIndex = - ...
- javascript 学习资料网址一览
1.http://www.runoob.com/ 2.https://developer.mozilla.org/zh-CN/ 3.http://www.imooc.com/ 视频类