首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用c ++实现堆栈

堆栈(Stack)是一种常见的数据结构,它遵循先进后出(LIFO)的原则。在C++中,可以使用数组或链表来实现堆栈。

使用C++实现堆栈,可以定义一个Stack类,其中包含以下几个关键方法:

  1. 构造函数:用于初始化堆栈的大小和其他必要的变量。
  2. push()方法:将元素压入堆栈顶部。
  3. pop()方法:从堆栈顶部弹出元素。
  4. top()方法:返回堆栈顶部的元素,但不对堆栈进行修改。
  5. isEmpty()方法:检查堆栈是否为空。
  6. isFull()方法:检查堆栈是否已满。

以下是一个使用数组实现堆栈的示例代码:

代码语言:cpp
复制
#include <iostream>

#define MAX_SIZE 100

class Stack {
private:
    int top; // 栈顶指针
    int stack[MAX_SIZE]; // 存储元素的数组

public:
    Stack() {
        top = -1; // 初始化栈顶指针为-1
    }

    void push(int element) {
        if (top >= MAX_SIZE - 1) {
            std::cout << "Stack overflow!" << std::endl;
            return;
        }
        stack[++top] = element; // 将元素压入栈顶
    }

    void pop() {
        if (top < 0) {
            std::cout << "Stack underflow!" << std::endl;
            return;
        }
        --top; // 从栈顶弹出元素
    }

    int topElement() {
        if (top < 0) {
            std::cout << "Stack is empty!" << std::endl;
            return -1;
        }
        return stack[top]; // 返回栈顶元素
    }

    bool isEmpty() {
        return (top < 0); // 判断栈是否为空
    }

    bool isFull() {
        return (top >= MAX_SIZE - 1); // 判断栈是否已满
    }
};

int main() {
    Stack stack;
    stack.push(1);
    stack.push(2);
    stack.push(3);

    std::cout << "Top element: " << stack.topElement() << std::endl;

    stack.pop();
    stack.pop();

    std::cout << "Top element: " << stack.topElement() << std::endl;

    return 0;
}

这段代码实现了一个基本的堆栈数据结构,使用了数组作为底层存储结构。通过调用push()方法将元素压入堆栈,调用pop()方法从堆栈中弹出元素,调用topElement()方法获取堆栈顶部的元素,调用isEmpty()方法检查堆栈是否为空,调用isFull()方法检查堆栈是否已满。

堆栈的应用场景非常广泛,例如在函数调用过程中,可以使用堆栈来保存函数的局部变量和返回地址;在表达式求值中,可以使用堆栈来实现后缀表达式的计算;在深度优先搜索算法中,可以使用堆栈来保存遍历的节点等等。

腾讯云提供了一系列云计算相关产品,其中包括云服务器、云数据库、云存储等。具体关于腾讯云的产品介绍和相关链接地址,请参考腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券