C++ Using recursion to process linked list, 深入理解递归的过程(part2)
来源:互联网 发布:13种网络钓鱼诈骗类型 编辑:程序博客网 时间:2024/05/16 16:19
为了更加深入的理解递归的过程, 遇到递归的程序的时候, 要学会采用画stack frame的方式理解递归(参见part1)
下面在举一个例子加深理解。
改变递归调用语句的顺序, 结果就是从尾部到头打印数据
在主程序调用printList 函数的时候, 不会先打印出来。 而是在递归调用的时候, 先分配stackframe 保存下当前位置, 在新的stackframe上执行。
此时打印的顺序变成了:
首先打印出来的是Tom, 释放Tom的stackframe, 打印出Mark, 。。。 打印出April。
于是打印的顺序完全反过来了。 变成了Tom Mark April。
不难知道原因。
0 0
- C++ Using recursion to process linked list, 深入理解递归的过程(part2)
- C++ Using recursion to process linked list, 深入理解递归的过程(part1)
- How to create Linked list using C/C++
- Lisp.使用递归(Using Recursion)
- 递归生成格雷码 gray code generation using recursion(c++)
- 阶乘的尾递归(Tail Recursion)写法(C++)
- Linked List part2 : List class
- leetcode 203. Remove Linked List Elements | 递归的更多理解
- 深入理解递归函数的调用过程
- 深入理解递归函数的调用过程
- 深入理解递归函数的调用过程
- 深入理解递归函数的调用过程
- 深入理解递归函数的调用过程
- 深入理解递归函数的调用过程
- 深入理解递归函数的调用过程
- 深入理解递归函数的调用过程
- 深入理解递归函数的调用过程
- 递归---Flatten Binary Tree to Linked List
- 懂,你的App生,不懂,死!
- c++ primer 4th 习题6.12答案纠错及改进
- windows下绑定线程(进程)到指定的CPU核心
- CloudStack 配置不适用VRouter
- opencv 2.x学习笔记(三)基本数据类型(一)
- C++ Using recursion to process linked list, 深入理解递归的过程(part2)
- Android的学习之路(二)项目中原生文件的使用场景和文件介绍
- TCP连接中的异常断开情况处理
- Mac OS中使用Launchctl设置定时任务
- Android开发者必备的十大开发工具
- OCP 1Z0 053 117
- struts乱码问题
- 直方图结构体:CvHistogram
- 数据结构-递归遍历二叉树