用数组模拟栈需定义数组和栈顶指针,初始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)
插入元素前先检查是否已满。
腾讯智影-AI数字人
73
基于AI数字人能力,实现7*24小时AI数字人直播带货,低成本实现直播业务快速增增,全天智能在线直播
73
查看详情
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>
基本上就这些。数组实现栈简单直接,适合学习和小型应用。注意控制边界,避免溢出或访问非法内存。
相关标签:
栈 ai c++ ios c++数组 封装 整型 指针 数据结构 栈
大家都在看:
C++栈上对象的初始化与销毁顺序
C++堆和栈内存分配区别
C++异常处理与堆栈展开机制解析
C++内存管理基础中堆内存和栈内存的区别
C++STL栈stack操作与应用实例
C++堆和栈内存分配区别
C++异常处理与堆栈展开机制解析
C++内存管理基础中堆内存和栈内存的区别
C++STL栈stack操作与应用实例
本站资料仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
THE END
































暂无评论内容