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
原创粉丝点击