使用C++设计一个栈类,实现的操作有初始化栈、入栈、出栈、判栈空
时间: 2023-11-27 08:03:29 浏览: 75
用C++实现栈的创建、输出、入栈、出栈
5星 · 资源好评率100%
好的,以下是一个简单的栈类的C++实现:
```cpp
class Stack {
private:
int* data; // 栈的数据存储数组
int top; // 栈顶指针
int size; // 栈的大小
public:
Stack(int size) { // 构造函数,初始化栈
this->size = size;
this->data = new int[size];
this->top = -1;
}
~Stack() { // 析构函数,释放内存
delete[] this->data;
}
void push(int val) { // 入栈操作
if (this->top == this->size - 1) {
// 栈已满,抛出异常
throw "Stack is full";
}
this->top++;
this->data[this->top] = val;
}
int pop() { // 出栈操作
if (this->top == -1) {
// 栈为空,抛出异常
throw "Stack is empty";
}
int val = this->data[this->top];
this->top--;
return val;
}
bool isEmpty() { // 判空操作
return this->top == -1;
}
};
```
这个栈类使用一个数组来存储数据,同时维护一个栈顶指针。在构造函数中,我们初始化栈并申请存储数组的内存;在析构函数中,我们释放内存。入栈操作将一个元素压入栈中,出栈操作将栈顶元素弹出,并返回它的值;判空操作则检查栈顶指针是否为-1。
你可以使用这个栈类来进行栈的基本操作,例如:
```cpp
Stack s(10); // 创建一个大小为10的栈
s.push(1); // 压入元素1
s.push(2); // 压入元素2
cout << s.pop() << endl; // 弹出栈顶元素2,并输出
cout << s.pop() << endl; // 弹出栈顶元素1,并输出
cout << s.isEmpty() << endl; // 输出1(栈为空)
```
希望这个实现能够帮助你!
阅读全文