顺序栈adt模板简单应用算法设计:奇怪的键盘
时间: 2023-06-05 13:48:08 浏览: 74
题目描述:
有一个奇怪的键盘,它只有两个按键:A和B。初始时,屏幕上没有任何字符。每次按下A键,会在屏幕上打印一个字符A;每次按下B键,会将屏幕上最后一个字符删除。现在给定一个字符串S,你需要按照其中的字符顺序,在屏幕上输出对应的字符串。
算法设计:
使用顺序栈ADT模板,将字符串S中的字符依次入栈。当遇到字符A时,将其入栈;当遇到字符B时,将栈顶元素出栈。最后,将栈中剩余的元素依次出栈,即可得到屏幕上的字符串。
代码实现:
```
#include <iostream>
#include <string>
#include "SeqStack.h" // 顺序栈ADT模板
using namespace std;
int main()
{
SeqStack<char> s; // 定义一个字符类型的顺序栈
string str;
cin >> str; // 输入字符串
for (int i = ; i < str.length(); i++)
{
if (str[i] == 'A')
{
s.Push(str[i]); // 将字符A入栈
}
else if (str[i] == 'B')
{
if (!s.IsEmpty())
{
s.Pop(); // 将栈顶元素出栈
}
}
}
while (!s.IsEmpty())
{
cout << s.GetTop(); // 输出栈中剩余的元素
s.Pop();
}
return ;
}
```