编程实现栈的如下功能: (1)根据输入的栈中元素个数n和各元素值建立一个顺序栈,并输出栈中各元素值。 (2)将数据元素e入栈,并输出入栈后的顺序栈中各元素值。 (3)将顺序栈中的栈顶元素出栈,并输出出栈元素的值和出栈后顺序栈中各元素值。用c++实现
时间: 2024-02-11 12:05:50 浏览: 111
基于C++实现的基础数据结构、泛型数据结构及高阶数据结构,含链式栈、顺序栈、单链表、带头双向循环链表、顺序表、泛型数据结构
好的,这是一个经典的栈的操作问题。我可以使用 C++ 代码来实现这个栈的功能,代码如下:
```cpp
#include <iostream>
#include <vector>
using namespace std;
class Stack {
private:
vector<int> stack;
public:
// 建立一个顺序栈
void create(int n) {
cout << "请输入栈中的元素:" << endl;
for (int i = 0; i < n; i++) {
int element;
cout << "请输入第" << i + 1 << "个元素:";
cin >> element;
stack.push_back(element);
}
cout << "顺序栈中的元素为:";
for (int i = 0; i < stack.size(); i++) {
cout << stack[i] << " ";
}
cout << endl;
}
// 将元素e入栈
void push(int e) {
stack.push_back(e);
cout << "入栈后顺序栈中的元素为:";
for (int i = 0; i < stack.size(); i++) {
cout << stack[i] << " ";
}
cout << endl;
}
// 将栈顶元素出栈
void pop() {
if (!stack.empty()) {
int pop_element = stack.back();
stack.pop_back();
cout << "出栈元素为:" << pop_element << endl;
cout << "出栈后顺序栈中的元素为:";
for (int i = 0; i < stack.size(); i++) {
cout << stack[i] << " ";
}
cout << endl;
} else {
cout << "栈已空,无法出栈。" << endl;
}
}
};
// 测试代码
int main() {
Stack s;
s.create(3);
s.push(4);
s.pop();
return 0;
}
```
上述代码中,我们定义了一个 Stack 类来实现栈的功能。其中,create() 方法用于建立一个顺序栈,push() 方法用于将元素入栈,pop() 方法用于将栈顶元素出栈。
在测试代码中,我们首先创建了一个 Stack 类的对象 s,并使用 s.create(3) 方法来建立一个顺序栈,包含 3 个元素。然后,我们调用 s.push(4) 方法将元素 4 入栈,并调用 s.pop() 方法将栈顶元素出栈。
运行上述代码,可以得到如下输出结果:
```
请输入栈中的元素:
请输入第1个元素:1
请输入第2个元素:2
请输入第3个元素:3
顺序栈中的元素为:1 2 3
入栈后顺序栈中的元素为:1 2 3 4
出栈元素为:4
出栈后顺序栈中的元素为:1 2 3
```
从输出结果中可以看出,我们成功地实现了栈的三个基本操作:建立顺序栈、入栈和出栈。
阅读全文