帮忙解释下递归调用的压栈过程!
在《数据结构》的习题集有这么一道题。
答案是这样的。
参考答案给出的地址指的哪一句的地址呢?
它的地址1是不是就是:
[解决办法]
关于递归我说两点,领悟了,便算掌握递归了。
1.把递归当成普通函数,然后理解整个函数的语义,这个函数的每个调用要从逻辑上讲得通。
2.递归得有个”出口“,否则就无限调用了。
[解决办法]
估计至少得两、三年吧。
[解决办法]
题目的意思,与其说是地址,不如说是行数,即运行到哪一行。
计算机系统的栈,不是具体语言写出来的,而是一个运行的程序,它的内存分布的一个客观存在的一片区域,这片内存的使用,遵循“后进先出”的栈的行为,所以被称为“栈”。
顺序表是“概念”,除了首尾,每一个元素只有一个“前”一个“后”,这样的东西就是“顺序表”;反观数组,它只是一种“实现”,链表也是“顺序表”的一种实现。
另外常见的顺序表的实现,数组也好,链表也好,元素的类型都是相同的,但是就顺序表这个概念来说,根本就没有这个要求,元素可以是不同类型的,扩展了这个概念的,其实就是广义表了。
学计算机的东西,分清楚“概念”和“实现”。