c++用面向对象的程序设计方法实现堆栈的操作。(栈的大小为5) 提示:程序包括: 栈的大小定义为5;栈定义为一个类stack; 栈的创建、进栈和出栈、栈的消亡;栈的使用 进栈:void push(int n);出栈:int pop(void);
时间: 2024-02-12 14:05:28 浏览: 27
好的,这是一个典型的面向对象的问题,我可以帮你解决。下面是C++代码:
```
#include <iostream>
using namespace std;
class Stack {
private:
int top; // 栈顶指针
int size; // 栈的大小
int* data; // 栈的数据区域
public:
// 构造函数
Stack(int size) {
top = -1;
this->size = size;
data = new int[size];
}
// 析构函数
~Stack() {
delete[] data;
}
// 进栈操作
void push(int n) {
if (top >= size - 1) {
cout << "Stack Overflow!" << endl;
return;
}
data[++top] = n;
}
// 出栈操作
int pop() {
if (top < 0) {
cout << "Stack Underflow!" << endl;
return -1;
}
return data[top--];
}
};
int main() {
Stack s(5);
s.push(1);
s.push(2);
s.push(3);
s.push(4);
s.push(5);
cout << "Pop element: " << s.pop() << endl;
cout << "Pop element: " << s.pop() << endl;
cout << "Pop element: " << s.pop() << endl;
cout << "Pop element: " << s.pop() << endl;
cout << "Pop element: " << s.pop() << endl;
cout << "Pop element: " << s.pop() << endl;
return 0;
}
```
这个程序定义了一个Stack类,它包含了一个私有的数据区域data,一个栈顶指针top和栈的大小size。构造函数在创建对象时分配了数据区域,析构函数在对象被销毁时释放了数据区域。push方法将元素推入栈中,pop方法将元素从栈中弹出。在main函数中,我们创建了一个大小为5的栈,将5个元素推入栈中,然后进行了6次出栈操作。