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

在c++中使用数组实现堆栈大小构造函数

在C++中,可以使用数组来实现堆栈数据结构。堆栈是一种后进先出(LIFO)的数据结构,只允许在栈顶进行插入和删除操作。

要实现一个具有固定大小的堆栈,可以使用数组来存储堆栈元素,并使用一个指针来指示栈顶的位置。下面是一个使用数组实现堆栈大小构造函数的示例:

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

class Stack {
private:
    int* stackArray;  // 存储堆栈元素的数组
    int top;  // 栈顶指针
    int maxSize;  // 堆栈的最大大小

public:
    // 构造函数,初始化堆栈
    Stack(int size) {
        stackArray = new int[size];
        top = -1;  // 初始时栈为空
        maxSize = size;
    }

    // 析构函数,释放堆栈内存
    ~Stack() {
        delete[] stackArray;
    }

    // 入栈操作
    void push(int value) {
        if (top == maxSize - 1) {
            std::cout << "堆栈已满,无法入栈!" << std::endl;
            return;
        }
        stackArray[++top] = value;
    }

    // 出栈操作
    int pop() {
        if (top == -1) {
            std::cout << "堆栈为空,无法出栈!" << std::endl;
            return -1;
        }
        return stackArray[top--];
    }

    // 获取栈顶元素
    int peek() {
        if (top == -1) {
            std::cout << "堆栈为空!" << std::endl;
            return -1;
        }
        return stackArray[top];
    }

    // 判断堆栈是否为空
    bool isEmpty() {
        return (top == -1);
    }

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

int main() {
    Stack stack(5);  // 创建一个最大大小为5的堆栈

    stack.push(1);
    stack.push(2);
    stack.push(3);

    std::cout << "栈顶元素:" << stack.peek() << std::endl;

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

    std::cout << "栈顶元素:" << stack.peek() << std::endl;

    return 0;
}

在上述示例中,我们定义了一个Stack类,其中包含了构造函数、析构函数以及堆栈的基本操作函数。构造函数接受一个参数size,用于指定堆栈的最大大小。通过new运算符动态分配了一个大小为size的整型数组来存储堆栈元素。top变量用于指示栈顶的位置,初始值为-1表示栈为空。

push()函数用于将元素入栈,首先检查堆栈是否已满,如果已满则输出提示信息。否则,将top指针加1,并将元素存储到stackArray数组中对应位置。

pop()函数用于将栈顶元素出栈,首先检查堆栈是否为空,如果为空则输出提示信息。否则,返回栈顶元素并将top指针减1。

peek()函数用于获取栈顶元素,首先检查堆栈是否为空,如果为空则输出提示信息。否则,返回栈顶元素。

isEmpty()函数用于判断堆栈是否为空,如果top等于-1,则堆栈为空。

isFull()函数用于判断堆栈是否已满,如果top等于maxSize - 1,则堆栈已满。

main()函数中,我们创建了一个最大大小为5的堆栈对象stack,并进行了一些入栈和出栈操作,最后输出了栈顶元素。

这是一个简单的使用数组实现堆栈的示例,可以根据实际需求进行扩展和优化。腾讯云提供了丰富的云计算产品,如云服务器、云数据库、云存储等,可以根据具体场景选择适合的产品来支持应用的部署和运行。

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

相关·内容

领券