基于 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++数组构建栈的方法。

TAGS: C++编程 C++数组 简单栈数据结构 数据结构构建

欢迎使用万千站长工具!

Welcome to www.zzTool.com