用数组模拟栈需定义数组和栈顶指针,初始top=-1;实现isEmpty、isFull、push、pop和peek操作;通过main函数测试入栈、出栈及查看栈顶元素,注意边界检查防止溢出。

在C++中,可以用数组来模拟栈的基本操作。栈是一种“后进先出”(LIFO)的数据结构,主要支持入栈(push)、出栈(pop)、查看栈顶元素(top)以及判断是否为空等操作。使用固定大小的数组实现栈简单高效,适合理解栈的底层原理。
用一个整型数组存储数据,配合一个整型变量top记录当前栈顶位置。初始时top = -1,表示栈为空。
示例定义:
const int MAX_SIZE = 100; int stack[MAX_SIZE]; int top = -1;
将各个操作封装成函数,便于调用和维护。
立即学习“C++免费学习笔记(深入)”;
1. 判断栈是否为空
bool isEmpty() {
return top == -1;
}
2. 判断栈是否已满
bool isFull() {
return top == MAX_SIZE - 1;
}
3. 入栈(push)
插入元素前先检查是否已满。
void push(int value) {
if (isFull()) {
cout << "栈已满,无法入栈!" << endl;
return;
}
stack[++top] = value;
}
4. 出栈(pop)
删除栈顶元素前检查是否为空。
void pop() {
if (isEmpty()) {
cout << "栈为空,无法出栈!" << endl;
return;
}
top--;
}
5. 获取栈顶元素
读取但不删除栈顶值。
int peek() {
if (isEmpty()) {
cout << "栈为空,无栈顶元素!" << endl;
return -1; // 或抛出异常
}
return stack[top];
}
将上述内容整合到main函数中测试:
#include <iostream>
using namespace std;
<p>const int MAX_SIZE = 5;
int stack[MAX_SIZE];
int top = -1;</p><p>// 各函数定义省略...</p><p>int main() {
push(10);
push(20);
push(30);
cout << "栈顶元素:" << peek() << endl;
pop();
cout << "出栈后栈顶:" << peek() << endl;
return 0;
}</p>基本上就这些。数组实现栈简单直接,适合学习和小型应用。注意控制边界,避免溢出或访问非法内存。
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号