21xrx.com
2024-09-20 05:55:23 Friday
登录
文章检索 我的文章 写文章
C++栈的实现代码
2023-07-02 04:36:09 深夜i     --     --
C++ 实现 代码

C++ 是一种非常流行的编程语言,擅长于构建高效率并且可靠的应用程序。而在 C++ 应用程序中,栈是一个非常重要的数据结构,可以用来解决多种问题,例如计算表达式、语法分析或者逆序输出字符串等等。

本文将会介绍 C++ 栈的实现代码,以帮助读者更好地理解这个重要的数据结构。

首先,让我们看一下栈的定义。栈就像一个桶,只有两个操作:push(把一个元素压入栈顶)和 pop(把栈顶元素弹出)。我们可以使用一个数组和一个指针实现一个栈。

以下是一个简单的栈实现:


#include <iostream>

#include <cstdlib>

using namespace std;

#define MAX_SIZE 100

class Stack {

  private:

    int top;

    int arr[MAX_SIZE];

  public:

    Stack()

      top = -1;

    

    void push(int x) {

      if (top >= MAX_SIZE - 1) {

        cout << "Error: stack full." << endl;

        exit(1);

      }

      arr[++top] = x;

    }

    int pop() {

      if (top < 0) {

        cout << "Error: stack empty." << endl;

        exit(1);

      }

      return arr[top--];

    }

    bool isEmpty()

      return top < 0;

    

};

int main() {

  Stack s;

  s.push(1);

  s.push(2);

  s.push(3);

  while (!s.isEmpty()) {

   cout << s.pop() << " ";

  }

  return 0;

}

在这个例子中,我们创建了一个 Stack 类,这个类包含了 push、pop 和 isEmpty 三个方法。其中,push 方法将一个元素放入栈顶,pop 方法将栈顶元素弹出,isEmpty 方法检查栈是否为空。

在这个实现中,我们将栈的容量设置为 MAX_SIZE,如果栈已经满了,就会抛出一个错误信息,程序终止。同样,如果栈为空,pop 方法也会抛出错误信息并终止程序。

在 main 函数中,我们创建了一个名为 s 的 Stack 对象,我们将三个数字元素依次压入栈中。最后,我们使用 while 循环从栈中弹出并输出每一个元素,直到栈为空。

现在,我们已经看到了栈的基本实现方法。但是,栈还有一些其他的操作,例如查找栈顶元素、获取栈大小等等。我们可以在 Stack 类中添加这些方法,来进行更加丰富的栈操作。

最后,我们需要注意的是,栈是一种非常重要的数据结构,在 C++ 中也有很多现成的栈实现。因此,在实际开发中,我们可以使用一些现成的库来节省时间和精力。但无论如何,理解栈的基本实现方法,对程序员来说都是非常重要的。

  
  

评论区

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