21xrx.com
2024-12-22 20:00:15 Sunday
登录
文章检索 我的文章 写文章
C++实现栈类
2023-07-05 10:10:30 深夜i     --     --
C++ 实现 栈类 数据结构 头文件

在C++语言中,栈(stack)是一种非常有用的数据结构。栈是一种先进后出(Last-In-First-Out,LIFO)的数据结构。C++ 中可以通过使用类来实现栈。

实现一个栈类可以使用 C++ 的面向对象编程的概念。栈类可以使用数组或链表数据结构来实现。链表实现比较复杂,所以这里使用数组来实现栈类。

首先,需要定义一个类来表示栈。该类需要包含两个变量:一个整数表示栈的大小,一个指针用于指向栈的元素。该类还需要实现以下四个函数:

1.构造函数(constructor)

构造函数用于初始化栈的大小和指针。可以通过参数传递栈的大小。

2.析构函数(destructor)

析构函数用于释放栈占用的内存。

3.压栈函数(push)

压栈函数用于将元素放入栈中。可以将元素作为参数传递给该函数。

4.弹栈函数(pop)

弹栈函数用于从栈中取出元素。如果栈不为空,则该函数返回栈顶元素并从栈中删除该元素。

下面是一个基本的栈类的实现。


class Stack {

  private:

   int top;

   int size;

   int* stackArray;

  public:

   Stack(int s) {

     size = s;

     top = -1;

     stackArray = new int[size];

   }

   ~Stack() {

     delete []stackArray;

   }

   void push(int element) {

     if (top >= size-1) {

      cout << "Stack overflow" << endl;

     }

     else {

      top++;

      stackArray[top] = element;

     }

   }

   int pop() {

     if (top < 0) {

      cout << "Stack underflow" << endl;

      return 0;

     }

     else {

      int element = stackArray[top];

      top--;

      return element;

     }

   }

};

在上面的示例中,栈使用动态内存来分配数组。构造函数初始化了一个空的栈,指定了栈的大小。当要添加元素到栈中时,push函数检查栈是否已满。当要从栈中弹出元素时,pop函数检查栈是否为空。

因此,C++ 中的栈类可以通过使用类的概念来实现。此类可以使用数组或链表等数据结构实现。实际上你也可以像使用标准C++库中的栈那样使用该类。这一想法简单,但增加了代码复杂性,因此在实际应用中可以更好地使用标准库中的栈。

  
  

评论区

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