栈的运用

来源:互联网 发布:警官证在淘宝上怎么搜 编辑:程序博客网 时间:2024/06/03 17:12

1.在程序设计语言中实现了递归。我们把一个直接用自己或者通过一系列的调用语句间接调用自己的函数,称作递归函数。写递归程序最怕的就是陷入用不结束的无穷递归中。所以,每一个递归定义至少有一个条件,满足时递归不再进行,即不再引用自身而是返回值退出。

2.递归和迭代的区别

迭代使用的是循环结构,递归使用的是选择结构。递归能使程序的结构更加清晰、更简洁、更容易让人理解,从而减少读懂代码的时间。但是大量的递归调用会建立函数副本,会耗费大量的时间和内存。迭代则不需要反复调用函数和占用额外的内存。

递归有前行阶段和退回阶段。退回阶段是前行阶段是前行阶段的逆序。在退回的过程中,可能要执行某些动作,包括在回复前行过程中存储起来的某些数据。

在前行阶段,对于每一层递归,函数的局部变量、参数值以及返回地址都被压入栈。在退回阶段,位于栈顶的局部变量、参数值和返回地址被弹出,用于返回调用层次中执行代码的其余部分,也就回复了调用的状态


0 0
原创粉丝点击