用c++编写顺序栈来初始化栈,取出栈顶元素,出栈,入栈。
时间: 2024-10-13 12:05:29 浏览: 16
在C++中,你可以通过手动管理内存并使用数组来创建一个简单的顺序栈(也称为线性栈)。这里是一个基本的实现:
```cpp
#include <iostream>
class Stack {
private:
int* arr; // 数组用于存储栈元素
int top; // 栈顶指针
int capacity; // 栈的最大容量
public:
Stack(int size) : capacity(size), arr(new int[capacity]), top(-1) {}
~Stack() { delete[] arr; } // 析构函数释放内存
// 入栈操作
void push(int value) {
if (top == capacity - 1) {
std::cout << "Stack is full. Cannot push.\n";
return;
}
arr[++top] = value;
std::cout << "Pushed " << value << " to the stack.\n";
}
// 出栈操作
int pop() {
if (top == -1) {
std::cout << "Stack is empty. No element to pop.\n";
return -1; // 返回一个特殊的值表示空栈
}
int value = arr[top--];
std::cout << "Popped " << value << " from the stack.\n";
return value;
}
// 取栈顶元素但不移除
int peek() const {
if (top == -1) {
std::cout << "Stack is empty.\n";
return -1;
}
return arr[top];
}
};
int main() {
Stack s(5); // 创建一个容量为5的栈
s.push(10);
s.push(20);
s.push(30);
// 输出栈顶元素,不会改变栈的状态
std::cout << "Top element is: " << s.peek() << "\n";
// 出栈并打印
int popped = s.pop();
std::cout << "Popped: " << popped << "\n";
return 0;
}
```
阅读全文