
一、前言本章为数据结构的第六篇栈的应用。小编把上课所学的几个经典应用写成博客方便后续的自己学习和回顾。本章节代码均以C语言展示。因为时间原因只写了每个应用的解释代码实现将在后期补上。二、十进制转换为其他进制十进制N转换为d进制公式N(N/d)*dN%d三、表达式中括号匹配检查配对 )[ ]{ }例 [ ] { [ ] } ✓ [ ] { } } } ❌ 第六个符号匹配不上四、表达式求值前缀表达式- * a b c d中缀表达式 a b ) * c - d后缀表达式a b c * d -中后缀求值顺序运算符优先级数值越大优先级越高五、利用栈消除递归原理递归本质是函数的调用函数的调用是用栈实现的。三步走1. 保存状态在递归调用前将当前函数的关键局部变量参数、临时变量等压入栈。2. 参数转换根据递归逻辑计算出下一层递归需要的参数并修改当前函数的参数模拟进入下一层。3. 循环替代用 while 循环包裹前两步代替原本的递归函数自调用。六、小结本章讲述了栈的四个应用十进制转换为其他进制表达式中括号配对检查表达式求值利用栈消除递归。本文根据上课所讲内容而写成图片均来自讲义ppt