通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"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提高组]
请编写一个函数fun其功能是:将ss所指字符串中所有下
下列给定程序中,是建立一个带头结点的单向链表,并用随机
有如下程序:程序运行时,从键盘输入:3<回车>后,程序
若有说明和语句:则此时*(p+5)中的值为。
程序填空:
已知x为非空列表,那么表达式x.reverse==
在函数内部可以通过关键字____________未定义
#编写函数,模拟Python内置函数sorted。
请读以下函数假设机器的无符号整数字长为16位,若调用此
当网络安全遭到破坏时,通常要采取相应的行动方案,如果发
下列程序的运行结果为( )。
用SELECT进行模糊查询时,可以使用 或 等
在关系模式R(U,F)中,Y为非主属性,对任何非平凡的
一个n个顶点的连通无向图,其边的个数至少为
有n个叶子的哈夫曼树的结点总数为
条件“IN(20,30,40)”表示( )
什么是黑盒测试法?[答案解析]黑盒测试法把程序看成一个
和 共同构成系统的逻辑模型。
32 位补码所能表示的整数范围是( )。
世界上最好的编程语言是?
C语言中的字符变量用保留字_____来说明。
下列论述中正确的是( )
若有如下程序段,其中 s、a、b、c 均已定义为整型变
对于一个 1到n 的排列 P(即 1到 n中每一个数在
甲乙丙丁四人在考虑周末要不要外出郊游。已知①如果周末下
参加 NOI 比赛,以下不能带入考场的是 ( )。
已知一棵二叉树有 2013个节点,则其中至多有( )个
( )是主要用于显示网页服务器或者文件系统的HTML文
输入:62 5 3 11 12 4输出:
二叉树 T,已知其先根遍历是 1 2 4 3 5 7
更多选择题
更多填空题
计算机二级Python语言程序设计模拟试卷
Python第三方库
2025年考研408计算机统考真题在线评测(附答案)
Python标准库
Python函数
Python文件
Python组合数据类型