📜  在 C++ 中使用类实现堆栈(1)

📅  最后修改于: 2023-12-03 14:50:52.090000             🧑  作者: Mango

在 C++ 中使用类实现堆栈

在 C++ 中,类是一种重要的编程概念。通过类的定义,我们可以封装数据和函数,并将它们组织成一个逻辑单元,方便程序的管理和操作。在本文中,我们将介绍如何使用类实现堆栈数据结构。

堆栈是一种常用的数据结构,它的特点是后进先出(Last In First Out,LIFO),类似于一摞书。堆栈通常包括以下操作:

  • Push:将元素压入堆栈顶部
  • Pop:弹出堆栈顶部的元素
  • Top:获取堆栈顶部的元素但不弹出
  • Empty:判断堆栈是否为空

现在,我们就来看一下如何用类实现一个堆栈。

定义堆栈类

在 C++ 中,我们可以使用 class 关键字定义一个类。为了实现堆栈,我们需要记录元素和栈顶的位置,因此可以定义如下的类:

class Stack {
public:
    bool empty() const;
    void push(int value);
    void pop();
    int top() const;
private:
    int data[100];
    int top_index;
};

在这个类中,我们定义了四个成员函数以及两个私有成员变量。其中,empty 函数用来判断堆栈是否为空,push 函数用来将元素压入堆栈顶部,pop 函数用来弹出堆栈顶部的元素,top 函数用来获取堆栈顶部的元素但不弹出。

我们还定义了一个长度为 100 的整型数组 data 和一个整型变量 top_index,用来存储堆栈中的元素和栈顶的位置。

实现堆栈函数

现在,我们需要实现上面定义的成员函数。这些函数可以使用类的成员变量和操作符来访问和修改堆栈。具体实现如下:

bool Stack::empty() const {
    return top_index == -1;
}

void Stack::push(int value) {
    ++top_index;
    data[top_index] = value;
}

void Stack::pop() {
    --top_index;
}

int Stack::top() const {
    return data[top_index];
}

这些函数都很简单。empty 函数判断栈顶位置是否为 -1,如果是则返回 true,否则返回 false。push 函数将栈顶位置加一,然后将元素存入 data 数组中。pop 函数将栈顶位置减一。top 函数返回 data 数组中栈顶位置处的元素。

使用堆栈类

现在我们已经实现了堆栈类,可以使用它来创建一个堆栈对象并进行操作。以下是使用堆栈类的示例代码:

Stack s;

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

while (!s.empty()) {
    std::cout << s.top() << " ";
    s.pop();
}

// Output: 3 2 1

在这段代码中,我们首先创建了一个名为 s 的堆栈对象。然后,我们使用 push 函数将三个元素依次压入堆栈顶部。接着,我们使用 while 循环和 top 函数实现了按顺序打印堆栈中的元素的效果。

总结

本文介绍了如何使用类实现堆栈数据结构。我们首先定义了堆栈类的成员变量和成员函数,然后通过类的操作符来实现对堆栈的操作。最后,我们用一个示例代码演示了如何使用堆栈类进行操作。通过这些代码,我们可以更好地理解 C++ 类在实际编程中的应用,以及堆栈的常用操作和实现方式。