堆栈在计算机领域的应用主要是限制数据插入与删除的位置和方法,属于有序表的应用。
1、二叉树及森林的遍历,如中序遍历、前序遍历等
2、计算机*处理单元中的中断处理。
3、图形的深度优先遍历法。
4、某些堆栈计算机,采用零地址指令,其指令没有操作数字段,大部分通过弹出和堆入两个指令来处理。
5、递归程序的调用及返回。在每次递归之前,必须先将下一个指令的地址及变量的值保存到堆栈中。当以后递归返回时,则一次从堆栈顶端去除这些相关的值,回到原来执行递归前的状态,再往下执行。
6、算术式的转换和求值,如中序法转换成后序法。
7、调用子程序及返回处理。例如,要执行 调用的子程序前,必须先将返回位置(下一个指令的地址)存储到堆栈中,然后再执行调用子程序的操作,等到子程序执行完毕后,再从堆栈中取出返回地址。
8、编译错误处理。例如,当编译程序发生错误或警示信息时,会先将所在的地址堆入堆栈中,然后才显示错误相关的信息对照表。
(1)中序法(Infix)
<操作数1><运算符><操作数2>
(2)前序法(Prefix)
<运算符><操作数1><操作数2>
(3)后序法(Posifix)
<操作数1><操作数2><运算符>