写一个顺序栈的初始化,进栈,出栈,和获取栈顶元素
时间: 2024-11-15 15:20:06 浏览: 0
在一个基本的顺序栈(也称为数组栈或动态数组栈)中,初始化、入栈、出栈以及获取栈顶元素的操作如下:
1. **初始化** (Push操作):
- 创建一个固定大小的数组作为栈容器。
- 初始化栈顶指针 `top` 初始值为-1(表示空栈),表示栈底位置加一。
```c++
Stack<int> myStack; // 使用C++模板创建栈
int stackSize = 10; // 定义栈的最大容量
myStack.resize(stackSize); // 初始化栈为空,容量为stackSize
```
2. **入栈** (Push操作):
- 当需要添加元素时,将新元素存储在 `top+1` 的位置,并将 `top` 加一。
```c++
int value = 5;
if (myStack.top() == stackSize - 1) {
// 如果已满,先扩容再插入
myStack.resize(2 * stackSize);
}
myStack[++top] = value; // 入栈操作
```
3. **出栈** (Pop操作):
- 要删除栈顶元素,返回并移除 `top` 所指向的值,然后将 `top` 自动减一。
```c++
int poppedValue = myStack[top]; // 获取栈顶元素
myStack[top--] = nullptr; // 或者设置为默认空值,防止内存泄漏
```
4. **获取栈顶元素** (Peek操作,查看但不修改):
- 不改变栈的状态,直接访问 `top` 所指向的位置获取元素。
```c++
int peekValue = myStack[top]; // 返回栈顶元素,但不移除它
```
阅读全文