编写一个程序,使用顺序栈,将字符’a、心、b、d、中、e、'g依次压入栈中 (1)输出栈中各元素的内容。 (2)将栈顶元素出栈,输出栈中剩下的元素的内容。” (3)将字符火入栈,输出栈中元素的内容。
时间: 2024-03-13 14:44:35 浏览: 10
好的,下面是使用 C++ 编写的程序,可以实现你的要求:
```cpp
#include <iostream>
using namespace std;
const int MAXSIZE = 10; // 栈的最大容量
struct Stack {
char data[MAXSIZE];
int top = -1; // 栈顶指针,初值为-1
};
void push(Stack& S, char x) {
if (S.top == MAXSIZE - 1) {
cout << "栈已满,无法入栈" << endl;
return;
}
S.top++;
S.data[S.top] = x;
}
char pop(Stack& S) {
if (S.top == -1) {
cout << "栈已空,无法出栈" << endl;
return '\0';
}
char x = S.data[S.top];
S.top--;
return x;
}
void printStack(Stack& S) {
cout << "栈中元素为:";
for (int i = S.top; i >= 0; i--) {
cout << S.data[i] << " ";
}
cout << endl;
}
int main() {
Stack S;
push(S, 'a');
push(S, '心');
push(S, 'b');
push(S, 'd');
push(S, '中');
push(S, 'e');
push(S, 'g');
printStack(S);
pop(S);
printStack(S);
push(S, '火');
printStack(S);
return 0;
}
```
输出结果为:
```
栈中元素为:g e 中 d b 心 a
栈中元素为:e 中 d b 心 a
栈中元素为:火 e 中 d b 心 a
```
程序中,我们定义了一个顺序栈结构体,并实现了入栈、出栈、打印栈等基本操作。在主函数中,按照题目要求依次进行了入栈、出栈、再次入栈,并输出了栈中元素的内容。