通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"NOIP真题" 试卷中 NOIP第十八届全国青少年信息学奥林匹克联赛初赛试题[2012提高组] 中有题目如下:
第1题
(壳栈)小 Z 设计了一种新的数据结构“新壳栈”。首先,它和传统的栈一样支持压入、弹出操作。此外,其栈顶的前 c 个元素是它的壳,支持翻转操作。其中,c > 2 是一个固定的正整数,表示壳的厚度。小 Z 还希望,每次操作,无论是压入、弹出还是翻转,都仅用与 c 无关的常数时间完成。聪明的你能帮助她编程实现“新壳栈”吗?
程序期望的实现效果如以下两表所示。其中,输入的第一行是正整数 c,之后每行输入都是一条指令。另外,如遇弹出操作时栈为空,或翻转操作时栈中元素不足 c 个,应当输出相应的错误信息。
#include <iostream> using namespace std; const int NSIZE = 100000,CSIZE = 1000; int n, c, r, tail, head, s[NSIZE], q[CSIZE]; //数组 s 模拟一个栈,n 为栈的元素个数 //数组 q 模拟一个循环队列,tail 为队尾的下标,head 为队头的下标 bool direction, empty; int previous(int k){ if (direction) return ((k + c - 2) % c) + 1; else return (k % c) + 1; } int next(int k){ if (direction) ①; else return ((k + c - 2) % c) + 1; } void push(){ int element; cin>>element; if (next(head) == tail) { n++; ②; tail = next(tail); } if (empty) empty = false; else head = next(head); ③= element; } void pop(){ if (empty) { cout<<"Error: the stack is empty!"<<endl; return; } cout<<④<<endl; if (tail == head) empty = true; else { head = previous(head); if (n > 0) { tail = previous(tail); ⑤= s[n]; n--; } } } void reverse(){ int temp; if (⑥== tail) { direction = !direction; temp = head; head = tail; tail = temp; }else cout<<"Error: less than "<<c<<" elements in the stack!"<<endl; } int main(){ cin>>c; n = 0; tail = 1; head = 1; empty = true; direction = true; do{ cin>>r; switch (r) { case 1: push();break; case 2: pop();break; case 3: reverse();break; } } while (r != 0); return 0; }
所属试卷:NOIP第十八届全国青少年信息学奥林匹克联赛初赛试题[2012提高组]
运算符重载时不需要保持的性质是
若有以下定义int a=100,*p=&a;,说法错误
计算机系统中的进程之间往往需要相互协作以完成一个任务。
在 Python 中,非法的语句是( )。
有以下程序:程序运行的结果是( )。
有以下程序:程序运行以后的输出结果是( )。
下列叙述中错误的是( )。
有以下程序段:若指定文件test.txt不存在,且无其
有如下程序:程序运行后的输出结果是。
设变量已正确定义并赋值,以下正确的表达式是。
表达 [index for index, value
正则表达式元字符___________用来表示该符号前
下列while循环体中printf语句将执行_____
若有代数|x3+log10x|,则正确的C语言表达式是
下列叙述中正确的是( )。
减法指令“sub R1, R2, R3”的功能为“(R
数据库的物理设计主要包括存储结构和 两个方面
将student表上的sname、sbirth两字段的
MySQL中索引存储类型有两种:哈希(HARSH)索引
某网络拓扑如题 47 图所示,其中 R 为路由器,主机
预处理命令行都必须以_____号开始。
数组在内存中占一段连续的存储区,由_____代表它的首
设a,b,c,t为整型变量,初值为a=3,b=4,c=
C语言中,数组元素的下标下限为_____。
C语言源程序文件的后缀是.c,经过编译之后,生成后缀为
带链的栈与顺序存储的栈相比,其优点是
算法空间复杂度的度量方法是
某系统自称使用了一种防窃听的方式验证用户密码。密码是
输入: 7 4输出: _________
输入: 2 3 5 7输出: _________
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2