21xrx.com
2025-06-13 22:40:39 Friday
文章检索 我的文章 写文章
C++出栈代码实现
2023-07-05 19:27:46 深夜i     --     --
C++ 出栈 代码 实现

栈是一种常见的数据结构,它具有先进后出的特点。在C++中,我们可以通过实现一个类来实现栈的功能。首先,我们需要定义栈的类:

c++
class Stack
{
private:
  int top; // 栈顶指针
  int size; // 栈的大小
  int* data; // 存储数据的数组
public:
  Stack(int size); // 构造函数
  ~Stack(); // 析构函数
  void push(int item); // 入栈操作
  int pop(); // 出栈操作
};

在类的定义中,我们定义了私有数据成员:栈顶指针top、栈的大小size和存储数据的数组data。同时,我们也定义了公有成员函数:构造函数、析构函数、入栈操作和出栈操作。

在构造函数中,我们需要初始化栈的大小和data数组。同时,我们也需要将栈顶指针top初始化为-1,表示栈为空。

c++
Stack::Stack(int size)
{
  this->size = size;
  top = -1;
  data = new int[size];
}

在析构函数中,我们需要释放data数组的内存空间。

c++
Stack::~Stack()
{
  delete[] data;
}

在入栈操作中,我们需要判断栈是否已满,如果栈已满,则不能继续入栈。否则,我们将要入栈的数据加入到data数组中,并将栈顶指针top加1。

c++
void Stack::push(int item)
{
  if (top == size - 1)
  {
    cout << "栈已满!" << endl;
    return;
  }
  data[++top] = item;
}

在出栈操作中,我们需要判断栈是否为空,如果栈为空,则不能继续出栈。否则,我们将data数组中最后一个数据弹出,并将栈顶指针top减1。

c++
int Stack::pop()
{
  if (top == -1)
  {
    cout << "栈为空!" << endl;
    return -1;
  }
  return data[top--];
}

通过以上代码实现,我们可以使用C++来实现一个栈。同时,我们也可以通过入栈操作和出栈操作的结合,完成更复杂的数据结构算法,如中缀表达式转后缀表达式等。

  
  

评论区