技术文摘
基于 C++数组构建简单栈数据结构
2024-12-30 18:36:43 小编
基于 C++数组构建简单栈数据结构
在 C++编程中,栈是一种常见的数据结构,它遵循后进先出(Last In First Out,LIFO)的原则。在本文中,我们将探讨如何使用 C++数组来构建一个简单的栈数据结构。
我们需要定义一个类来表示栈。以下是一个基本的栈类的定义:
class Stack {
private:
int *stackArray;
int top;
int capacity;
public:
Stack(int size) {
capacity = size;
stackArray = new int[capacity];
top = -1;
}
~Stack() {
delete[] stackArray;
}
bool isEmpty() {
return (top == -1);
}
bool isFull() {
return (top == capacity - 1);
}
void push(int element) {
if (!isFull()) {
stackArray[++top] = element;
} else {
std::cout << "Stack is full. Cannot push." << std::endl;
}
}
int pop() {
if (!isEmpty()) {
return stackArray[top--];
} else {
std::cout << "Stack is empty. Cannot pop." << std::endl;
return -1;
}
}
int peek() {
if (!isEmpty()) {
return stackArray[top];
} else {
std::cout << "Stack is empty. No element to peek." << std::endl;
return -1;
}
}
};
在上述代码中,我们使用一个整数数组 stackArray 来存储栈的元素,top 变量表示栈顶的位置,capacity 表示栈的容量。
isEmpty 方法用于判断栈是否为空,isFull 方法用于判断栈是否已满。push 方法用于向栈中添加元素,如果栈已满则输出提示信息。pop 方法用于弹出栈顶元素,如果栈为空则输出提示信息并返回 -1。peek 方法用于获取栈顶元素,但不弹出,如果栈为空则输出提示信息并返回 -1。
下面是一个使用上述栈类的示例代码:
int main() {
Stack stack(5);
stack.push(10);
stack.push(20);
stack.push(30);
std::cout << "Top element: " << stack.peek() << std::endl;
int poppedElement = stack.pop();
std::cout << "Popped element: " << poppedElement << std::endl;
std::cout << "Top element after pop: " << stack.peek() << std::endl;
return 0;
}
通过使用 C++数组构建简单栈数据结构,我们可以更好地理解栈的工作原理和实现方式,为更复杂的程序设计打下基础。
在实际应用中,根据具体需求,还可以对栈进行更多的功能扩展和优化,例如支持动态扩容、异常处理等。希望本文能够帮助您初步掌握使用 C++数组构建栈的方法。
- Centos 系统中使用 source 命令提示 notavalia identitier 如何解决
- 在 Linux 系统中利用 Grub 启动器启动 ISO 镜像的办法
- CentOS 系统中软件包的制作方式与过程全解
- Ubuntu 系统中利用 apt-fast 加速 apt-get 下载的教程
- CentOS 7 安装成功后命令缺失的解决办法
- CentOS 中 yum 找不到特定包的解决办法
- Centos6.5 glibc 升级的详细步骤
- Linux 系统中 7zip 软件安装及归档文件处理教程
- Centos 中 nodejs 与 express 框架的编译安装方法
- Centos 6.4 中 Erlang 与 RabbitMQ 的安装方法
- 两种实现 yum 只下载软件不安装的办法
- Centos 6.4 中 dnsmasq 的安装方法
- CentOS 安装后无法连网的解决办法
- Putty 登录 Ubuntu 中文显示乱码的解决方法
- CentOS7 安装配置 Redis 的方法