c语言sscanf函数的用法是什么
271
2022-09-21
浙大版《数据结构学习与实验指导(第2版)》进阶实验8-2.2:特殊堆栈
题意
Description 堆栈是一种经典的后进先出的线性结构,通常有入栈(Push)和出栈(Pop)两个操作。
某人觉得这样不够好玩,就自己模拟了一个栈,并加上了取中值(GetMedia)操作。
即,返回(不取出)栈中所有元素的最中间那个元素。若最中间的元素有两个,则返回更靠前的那个。
Input 输入包括很多行(行数 $\le 10^5$),每行都是一个操作。
如果操作命令是Push,则后面会紧跟一个空格和数字$t$ ( $0 \le t\le 10^5$ ),表示要把$t$入栈。如:Push 3。
如果操作命令是Pop,则此行它后面什么都不会出现,表示要出栈一个元素。
如果操作命令是GetMedia,则此行它后面什么都不会出现,表示要返回栈中最中间的那个数。
数据保证每个操作命令不包含空格,即不会出现操作Get Media等。
Output 符合上述3种描述的输入都是合法输入,但不一定是合法操作。例如在栈空时尝试Pop命令就是非法的。
如果是Push命令,就把它后面的整数入栈。
如果是Pop命令,就出栈一个元素并输出。
如果是GetMedia命令,就输出中间的元素。
操作过程中若出现任何非法情况,则这个操作取消并输出What are you Nong Sha Li?。
思路
比较简单的思路就是用数组进行模拟,要注意对非法情况的判断。 还有一种思路就是维护一个栈和一个vector容器
详见
代码
#include
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~