C++ 固定长度数组实现栈操作 - 压入弹出
以下是使用 C++ 定义一个固定长度数组,并实现压入和弹出操作的代码示例:
#include <iostream>
using namespace std;
const int MAX_SIZE = 10; // 定义数组的最大长度
class FixedArray {
private:
int arr[MAX_SIZE]; // 数组
int top; // 栈顶指针
public:
FixedArray() { top = -1; } // 构造函数,初始化栈顶指针为-1
void push(int data) {
if (top >= MAX_SIZE - 1) { // 检查是否已满
cout << 'Error: Stack Overflow!' << endl;
return;
}
arr[++top] = data; // 栈顶指针加1,把元素放入数组中
}
int pop() {
if (top < 0) { // 检查是否为空
cout << 'Error: Stack Underflow!' << endl;
return -1;
}
return arr[top--]; // 返回栈顶元素并把栈顶指针减1
}
void display() {
if (top < 0) {
cout << 'Stack is empty!' << endl;
return;
}
cout << 'Stack elements: ';
for (int i = 0; i <= top; i++) {
cout << arr[i] << ' ';
}
cout << endl;
}
};
int main() {
FixedArray stack;
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.display(); // 栈元素为:1 2 3 4
cout << 'Popped element: ' << stack.pop() << endl; // 弹出元素:4
cout << 'Popped element: ' << stack.pop() << endl; // 弹出元素:3
stack.display(); // 栈元素为:1 2
stack.push(5);
stack.push(6);
stack.push(7);
stack.push(8);
stack.push(9);
stack.push(10);
stack.display(); // 栈元素为:1 2 5 6 7 8 9 10
stack.push(11); // 栈已满,输出错误信息
return 0;
}
该程序定义了一个 FixedArray 类,其中包含一个数组和一个栈顶指针。push() 函数用于将元素压入栈中,pop() 函数用于弹出栈顶元素,display() 函数用于输出栈中所有元素。在主函数中,我们创建了一个 FixedArray 对象,压入了 4 个元素,然后弹出 2 个元素,再压入 6 个元素。其中,第 11 行定义了数组的最大长度为 10。当数组已满时,push() 函数会输出错误信息。
该代码示例展示了如何使用固定长度数组来模拟栈的行为,以及如何实现基本的栈操作。通过修改数组的大小和操作函数,您可以根据您的需求创建不同类型的栈结构。
原文地址: https://www.cveoy.top/t/topic/lC6G 著作权归作者所有。请勿转载和采集!