21xrx.com
2024-11-25 05:59:29 Monday
登录
文章检索 我的文章 写文章
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++来实现一个栈。同时,我们也可以通过入栈操作和出栈操作的结合,完成更复杂的数据结构算法,如中缀表达式转后缀表达式等。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复