21xrx.com
2024-12-23 01:57:33 Monday
登录
文章检索 我的文章 写文章
C++如何创建栈?
2023-07-05 22:42:48 深夜i     --     --
C++ 创建

在C++中,创建一个简单的栈可以使用数组和指针来实现。栈可以定义为一个后进先出(Last In First Out,LIFO)的数据结构,其中最后插入的元素被优先弹出。

首先,定义一个数组来保存栈中的元素。下面的代码展示了如何创建一个固定大小为10的栈:


int stack[10];

int top = -1;

在这里, `stack` 数组表示栈本身, `top` 变量指向栈顶。我们将 `top` 初始化为-1,因为当栈为空时, `top` 应该指向-1。

接下来,我们可以定义一些基本函数来操作栈。

首先是 `push` 函数,用于将元素推入栈中:


void push(int x) {

  if (top == 9)

    cout << "栈已满" << endl;

   else {

    top++;

    stack[top] = x;

  }

}

这个函数获取一个整数作为参数,然后检查是否已经达到栈的最大大小。如果栈已满,则打印一条消息,否则将元素 `x` 推入栈中并将 `top` 后移一个位置。

接下来是 `pop` 函数,用于从栈顶弹出元素:


int pop() {

  if (top == -1)

    cout << "栈为空" << endl;

    return INT_MIN;

   else {

    int x = stack[top];

    top--;

    return x;

  }

}

这个函数没有参数,但返回一个整数。它检查是否还有元素可以弹出。如果栈为空,则打印一条消息并返回 `INT_MIN`(一个常量表示最小整数)。否则,将栈顶元素弹出,将 `top` 向下移动一个位置,并返回该元素。

最后是 `main` 函数,用于测试我们的栈:


int main() {

  push(10);

  push(20);

  push(30);

  cout << pop() << endl; //输出30

  cout << pop() << endl; //输出20

  cout << pop() << endl; //输出10

  cout << pop() << endl; //栈为空,输出INT_MIN

  return 0;

}

在这个函数中,我们首先使用 `push` 函数将三个整数推入栈中。然后我们使用 `pop` 函数连续三次弹出栈顶元素,并将结果打印到屏幕上。最后,我们尝试弹出一个不存在的元素,并打印 `INT_MIN`。

通过这个简单的例子,我们可以看到如何创建一个栈来存储数据,并且可以弹出、推入和访问栈中的元素。这只是栈的最基本实现,未考虑线程安全等因素,开发中需要根据实际情况进行优化。

  
  

评论区

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