#644. NOIP2014TG-27
NOIP2014TG-27
当前没有测试数据。
27.(完善程序)
(双栈模拟数组)只使用两个栈结构 和 ,模拟对数组的随机读取。作为栈结构, 和 只能访问栈顶(最后一个有效元素)。栈顶指针 和 均指向栈顶元素的下一个位置。
输入第一行包含两个整数,分别是数组长度 和访问次数 ,中间用单个空格隔开。
第二行包含 个整数,依次给出数组各项(数组下标从 到 )。
第三行包含 个整数,需要访问的数组下标。对于每次访问,输出对应的数组元素。
(前两空每空 分,其余每空 分,共 分)
#include<iostream>
using namespace std;
const int SIZE=100;
int stack1[SIZE],stack2[SIZE];
int top1,top2;
int n,m,i,j;
void clearStack(){
int i;
for(i=top1;i<SIZE;i++)
stack1[i]=0;
for(i=top2;i<SIZE;i++)
stack2[i]=0;
}
int main(){
cin>>n>>m;
for(i=0;i<n;i++)
cin>>stack1[i];
top1=____________________;
top2=____________________;
for(j=0;j<m;j++){
cin>>i;
while(i<top1-1){
top1--;
____________________;
top2++;
}
while(i>top1-1){
top2--;
____________________;
top1++;
}
clearStack();
cout<<stack1[____________________]<<endl;
}
return 0;
}
①:{{ input(1) }}
②:{{ input(2) }}
③:{{ input(3) }}
④:{{ input(4) }}
⑤:{{ input(5) }}