C++设计一个顺序栈的基本操作的演示程序
时间: 2024-10-20 17:14:23 浏览: 45
在C++中,我们可以设计一个简单的顺序栈(基于数组实现)来进行基本的操作,包括入栈、出栈、查看栈顶元素以及检查栈是否为空。下面是一个基本的示例:
```cpp
#include <iostream>
// 定义栈的大小
#define MAX_SIZE 10
// 定义栈结构体
struct Stack {
int data[MAX_SIZE];
int top; // 栈顶指针
};
// 初始化栈
void initialize(Stack &s) {
s.top = -1;
}
// 判断栈是否为空
bool isEmpty(const Stack &s) {
return s.top == -1;
}
// 入栈操作 (压栈)
void push(Stack &s, int value) {
if (s.top < MAX_SIZE - 1) {
s.data[++s.top] = value;
std::cout << "Pushed element: " << value << std::endl;
} else {
std::cout << "Stack is full, can't push!" << std::endl;
}
}
// 出栈操作 (弹栈)
int pop(Stack &s) {
if (!isEmpty(s)) {
return s.data[s.top--];
} else {
std::cout << "Stack is empty, can't pop!" << std::endl;
return -1; // 返回错误值表示空栈
}
}
// 查看栈顶元素
int peek(const Stack &s) {
if (!isEmpty(s)) {
return s.data[s.top];
} else {
std::cout << "Stack is empty, no top element to show!" << std::endl;
return -1; // 同样返回错误值表示空栈
}
}
int main() {
Stack myStack;
initialize(myStack);
push(myStack, 5);
push(myStack, 10);
push(myStack, 15); // 应该打印"Stack is full, can't push!"
std::cout << "Top element: " << peek(myStack) << std::endl;
int poppedValue = pop(myStack);
std::cout << "Popped element: " << poppedValue << std::endl;
return 0;
}
```
在这个示例中,我们首先创建了一个栈结构体,包含数据存储数组和一个指向栈顶的指针。然后实现了初始化、判断空栈、入栈、出栈和查看栈顶元素等方法。在`main()`函数中进行了这些操作的演示。
阅读全文