将上述代码改为c++的出栈入栈操作
时间: 2024-03-20 12:42:07 浏览: 50
数据结构 栈
好的,下面是使用 C++ 实现的出栈入栈操作的代码:
```c++
#include<iostream>
#include<stdlib.h>
using namespace std;
class Stack {
public:
Stack(int max);
bool push(int data);
bool pop();
bool isEmpty();
bool isFull();
void printStack();
private:
int* data;
int top;
int maxSize;
};
Stack::Stack(int max) {
data = new int[max];
maxSize = max;
top = -1;
}
bool Stack::push(int d) {
if (top >= maxSize - 1) {
cout << "栈已满!" << endl;
return false;
}
top++;
data[top] = d;
return true;
}
bool Stack::pop() {
if (top < 0) {
cout << "栈已空!" << endl;
return false;
}
top--;
return true;
}
bool Stack::isEmpty() {
if (top < 0) {
return true;
}
return false;
}
bool Stack::isFull() {
if (top >= maxSize - 1) {
return true;
}
return false;
}
void Stack::printStack() {
if (top < 0) {
cout << "栈已空!" << endl;
return;
}
cout << "栈中元素:";
for (int i = 0; i <= top; i++) {
cout << data[i] << " ";
}
cout << endl;
}
int main() {
Stack stk(5);
stk.push(1);
stk.push(2);
stk.push(3);
stk.push(4);
stk.push(5);
stk.printStack();
stk.pop();
stk.printStack();
stk.pop();
stk.printStack();
stk.pop();
stk.printStack();
stk.pop();
stk.printStack();
stk.pop();
stk.printStack();
return 0;
}
```
这里我们使用了一个 Stack 类来表示栈,其构造函数 Stack(int max) 用于创建一个大小为 max 的栈,push(int data) 用于将元素压入栈中,pop() 用于将栈顶元素弹出,isEmpty() 用于判断栈是否为空,isFull() 用于判断栈是否已满,printStack() 用于打印当前栈中的元素。
在 main 函数中,我们创建了一个大小为 5 的栈,然后依次将元素 1 到 5 压入栈中,之后反复进行弹出操作,最后打印出栈中的元素。
阅读全文