21xrx.com
2024-12-22 17:32:17 Sunday
登录
文章检索 我的文章 写文章
C++栈的基本操作和应用
2023-06-29 04:00:53 深夜i     --     --
C++ 基本操作 应用

栈是一种常见的数据结构,它遵循先进后出(Last-In First-Out, LIFO)的原则,通常用于处理递归函数、表达式求值、括号匹配等问题。在C++中,我们可以通过使用标准模板库中的`stack`类来实现栈的操作。

基本操作:

1. push(elem):将元素elem压入栈中,即将其放在栈顶。

2. pop():弹出栈顶元素,即删除并返回栈顶元素。

3. top():返回栈顶元素,但不删除它。

4. empty():判断栈是否为空,若为空,则返回true,否则返回false。

5. size():返回栈中元素的个数。

示例代码:


#include <iostream>

#include <stack>

using namespace std;

int main() {

  stack<int> st; // 定义一个int类型的栈

  // push操作

  st.push(1);

  st.push(2);

  st.push(3);

  // top和pop操作

  while (!st.empty()) {

    cout << st.top() << " "; // 输出栈顶元素

    st.pop(); // 弹出栈顶元素

  }

  return 0;

}

以上代码输出:`3 2 1`,即栈是先压入`1`,再压入`2`,最后压入`3`,但在输出时,先输出栈顶元素`3`,再弹出,输出`2`,再弹出,输出`1`,再弹出后,此时栈中没有元素,`while`循环结束。

应用:

1. 递归函数:递归函数调用自身,其执行顺序遵循先进后出的原则,可以使用栈来实现递归函数的非递归形式。

2. 表达式求值:将中缀表达式转换为后缀表达式,并用栈来计算后缀表达式的值。

3. 括号匹配:使用栈来判断括号的匹配情况,即依次将括号压入栈中,如果出现右括号,则与栈顶元素进行匹配,如果能够匹配成功,则弹出栈顶元素;否则,表示括号不匹配。

综上所述,栈是一种常见的数据结构,可以用于处理许多问题。在C++中,标准模板库中的`stack`类提供了栈的基本操作,可以方便地进行栈的操作。

  
  

评论区

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