编写一个C++的入栈和出栈代码
时间: 2024-03-27 18:36:34 浏览: 24
下面是一个简单的 C++ 入栈和出栈的示例代码:
```cpp
#include <iostream>
#define MAXSIZE 100
using namespace std;
class Stack {
private:
int top;
int data[MAXSIZE];
public:
Stack() { top = -1; }
void push(int item) {
if (top >= MAXSIZE - 1) {
cout << "Stack Overflow!" << endl;
return;
}
data[++top] = item;
}
int pop() {
if (top < 0) {
cout << "Stack Underflow!" << endl;
return -1;
}
return data[top--];
}
};
int main() {
Stack s;
s.push(10);
s.push(20);
s.push(30);
cout << s.pop() << endl;
cout << s.pop() << endl;
cout << s.pop() << endl;
cout << s.pop() << endl;
return 0;
}
```
以上代码中,我们使用一个类 `Stack` 来实现栈的基本操作,包括入栈和出栈。在 `Stack` 类中,我们使用一个数组 `data` 来存储栈中的元素,以及一个整数 `top` 来表示栈顶的位置。在 `push` 函数中,我们首先检查栈是否已满,如果是,则输出错误信息并返回;否则,将元素插入到 `top+1` 的位置,并将 `top` 值加 1。在 `pop` 函数中,我们首先检查栈是否为空,如果是,则输出错误信息并返回 -1;否则,返回 `top` 位置上的元素,并将 `top` 值减 1。
在 `main` 函数中,我们创建了一个栈对象 `s`,并依次将元素 10、20、30 入栈,然后依次将栈中的元素出栈,并输出出栈的元素。最后,我们尝试从空栈中出栈一个元素,这时会输出错误信息 "Stack Underflow!"。