码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 复习十:栈与递归的实现


    1、n阶Hanoi塔问题

    1. void hanoi(int n,char x,char y,char z)
    2. //将塔座X上按直径由小到大且自上到下编号为1至n的n个圆盘按规则搬到塔座z上,y可用作辅助塔座
    3. //搬动操作move(x,n,z)可定义为:printf("%i.Move disk %i from %c to %c\n",++c,n,x,z);
    4. //c是初始值为0的全局变量,对搬动计数
    5. {
    6. if(n=1)
    7. move(x,1,z); //将编号为1的圆盘从x移到z
    8. else{
    9. hanoi(n-1,x,z,y); //将x上n-1个圆盘搬到y上,z作辅助塔
    10. move(x,n,z); //将第n个盘子从x移动到z上
    11. hanoi(n-1,y,x,z); //将y上n-1个盘子搬到z上,x作辅助塔
    12. }
    13. }

    「递归练习」汉诺塔_哔哩哔哩_bilibili

    二、栈与递归

    一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称作递归函数

    若在函数A中调用了函数B,则称函数A为调用函数,称函数B为被调用函数。

    当在一个函数的运行期间调用另一个函数时 

    在运行被调用函数之前,系统需先完成3件事从被调用函数返回调用函数之前,系统也需先完成3件事
    1、将所有的实在参数、返回地址等信息传递给被调用函数保存1、保存被调函数的计算结果
    2、为被调用函数的局部变量分配存储区2、释放被调函数的数据区
    3、将控制转移到被调函数的入口3、依照被调函数保存的返回地址将控制转移到调用函数

    当有多个函数构成嵌套调用时,按照“后调用先返回”的原则

    【一个递归函数的运行过程类似于多个函数的嵌套调用,只是调用函数和被调用函数时同一个函数】

    每一层递归所需信息构成一个“工作记录”,其中包括所有的实在参数、所有的局部变量以及上一层的返回地址。每进入一层递归,就产生一个新的工作记录压入栈顶。每退出一层递归,就从栈顶弹出一个工作记录,则当前执行层的工作记录必是递归工作栈栈顶的工作记录,称这个记录为“活动记录”,并称指示活动记录的栈顶指针为“当前环境指针”。

  • 相关阅读:
    基于MIMO+16QAM系统的VBLAST译码算法matlab仿真
    「精致店主理人」:青年并肩同行,共赴创业之路
    如何利用自动发现将现网的进程纳入到监控系统中?
    【Python】给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
    Prometheus-Grafana
    一文2000字教你从0到1实现Jmeter 分布式压测
    OpenCV-Python快速入门(二):图像基础
    jQuery---如何区分DOM对象和jQuery对象
    UWB技术在汽车智能制造的应用
    ARM中断实验
  • 原文地址:https://blog.csdn.net/yyy_zxc/article/details/126870238
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号