算法与数据结构实验题 3.2 文档
1、题目:
★实验任务 TonyY 是一个 word 小白,今天他对 word 中撤销和恢复功能特别感兴趣,玩 耍了一个上午(mdzz~),现在他知道了它们的功能和快捷键: 撤销:ctrl+z,可以撤销最近 1 次之前的恢复和 input 操作。 恢复:ctrl+y,可以恢复最近 1 次之前的撤销操作,但是 input 操作之前的 撤销操作不能被恢复。 当然,TonyY 还要往里写东西,操作格式为 input str(长度 m 1=<m<=30)。 现在他对 word 玩耍了起来,想知道玩耍完的结果,你可以帮助他吗?
★数据输入
输入第一行为一个正整数 n(0<=n<=10000),表示 TonyY 的操作次数。 接下来 n 行,为上述的操作之一。 其中可能有不合法操作,直接跳过即可。
★数据输出
输出 word 中的内容,字符串间用空格隔开,如果 word 为空,输出”No output”
2、代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int n;
cin>>n;
int i,j=0,k;
string str,data,a[10005];
for(i=0; i<n; i++)
{
cin>>str;
if(str=="input")
{
cin>>a[++j];
k=j;
}
if(str=="ctrl+z")
{
if(j>0)
{
--j;
}
}
if(str=="ctrl+y")
{
if(j<k)
{
++j;
}
}
}
if(j==0)
{
cout<<"No output"<<endl;
}
else
{
for(i=1; i<=j; i++)
{
if(i<j)
{
cout<<a[i]<<" ";
}
if(i==j)
{
cout<<a[i]<<endl;
}
}
}
return 0;
}