Problem D: 栈小游戏

网友投稿 223 2022-11-01


Problem D: 栈小游戏

Problem D: 栈小游戏

Description

小明想深入了解Stack(栈)的用法,所以他打算写一个类来模拟一下。但是他没有学过C++中强大的STL,所以他现在向你求助了。请帮他编写一个类Operation,包括4个属性:

1. vector data:存储用于仿真的数据。

2. stack iStack:栈。

3. vector opers:对栈的操作。

4. vector result:存储出栈的数据。

还有4个方法:

1. void inputData():读取数据。

2. void inputOpers():读取操作。

3. void showResult():显示出栈的数据序列。

4. void clearData():清空所有的属性值。

Input

第1行N>0表示有N个测试用例。

每个测试用例由两行组成:

1. 第1行是若干个int类型的数据,以“0”作为结束标识。注意:“0”不作为输入数据即Operation类中data成员的一个元素,只是用做结束标识。

2. 第2行是若干个英文字母,用'i'或'I'(字母I,不是数字1.)表示入栈操作,用‘o'或者'O’(字母O,不是数字0.)表示出栈操作,用'e'或者'E'表示输入结束。但是小明很不仔细,这些字符序列中可能包括其他字符。

Output

输出有N行,每个测试用例产生一行输出。

每行的格式为:“The pop sequence is: ”,之后按照出栈顺序显示所有数据,这些数据两两之间用1个空格隔开,且最后没有空格。如果没有产生出栈数据,则显示“Empty.”

#include #include #include #include #include #include using namespace std;class Operation {private: stack s; queue data; vector opers; vector result;public: void clearData() { while(!data.empty()) data.pop(); while( !s.empty() ) s.pop(); opers.clear(); result.clear(); } void inputData() { int temp; while (cin >> temp) { if (temp == 0) break; data.push(temp); } } void inputOpers() { char temp; while (cin >> temp) { if (isupper(temp)) temp += 32; if (temp == 'e') break; if (temp == 'i' || temp == 'o')opers.push_back(temp); } } void showResult() { int len = opers.size(); for (int i = 0; i < len; i++) { if (opers[i] == 'i' && !data.empty()) { int temp = data.front(); data.pop(); s.push(temp); } else if (opers[i] == 'o' && !s.empty()) { int temp = s.top(); s.pop(); result.push_back(temp); } } len = result.size(); cout << "The pop sequence is:"; if (len == 0) { cout << " Empty." << endl; } else { for (int i = 0; i < len; i++) { cout << " " << result[i]; } cout << endl; } }};int main(){ Operation myOp; int cases; cin>>cases; for (int i = 0; i < cases; i++) { myOp.clearData(); myOp.inputData(); myOp.inputOpers(); myOp.showResult(); } return 0;}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java数组元素的引用实例讲解
下一篇:UVa 1471 Defense Lines——LIS nlogn 算法变形
相关文章

 发表评论

暂时没有评论,来抢沙发吧~