当前位置:首页 > TAG信息列表 > 什么可以作为实现递归函数调用的一种数据结构?知道的大侠告诉我呗?

什么可以作为实现递归函数调用的一种数据结构?知道的大侠告诉我呗?

递归是用什么数据结构实现的 数据结构中,什么可以作为实现递归函数调用的一种数据结构?知道的大侠告诉我呗?

数据结构中,什么可以作为实现递归函数调用的一种数据结构?知道的大侠告诉我呗?

堆栈是一种逻辑结构,而不是数据结构。在这里填充堆栈并不严格。虽然很多地方的试卷给出的答案是stack,但我认为这里应该填写递归工作栈,即递归工作栈是用来存储被调用函数执行所需的数据,既有存储又有关系和操作,符合数据结构的定义。

在学习数据结构与算法的时候,一旦出现递归就很难理解,对于递归有没有什么好的理解方法?

哈哈,这种情况和我当时学编程一样。

首先,既然你可以问这个问题,我假设你已经看过一些递归程序的例子,而不是仅仅看定义来谈这个(如果你真的看不到,先去看看)

然后,在递归中,有一个非常重要的东西,那就是递归的退出条件,这是基础理解所有递归算法。递归必须有退出条件,否则程序将永远无法完成。退出条件是当递归程序运行到某个对象时,它不会继续调用自己。这个退出条件可以是递归的次数,也可以是判断某个数是否足够大,或者是否没有更多的子项,等等。通常,如果在递归函数中看到两个或多个返回(例如,如果返回xelse返回函数本身),那么不是返回函数本身的行就是退出条件。

递归是用什么数据结构实现的 数据结构中,什么可以作为实现递归函数调用的一种数据结构?知道的大侠告诉我呗?

找到退出条件后,剩下的就简单了。您可以将退出条件以外的部分拆分为完全相同的函数来理解它。例如,有一个递归函数f(intx),在return部分有一个句子是returnf(k),所以你重写它如下:

f1(intx),f2(intx),f3(intx)

函数体是一样的,只要复制f(intx),只要改变return,f1中原来的returnf(k)就变成了returnf2(k),而f2改为返回f3(k),简而言之,就是不断引入下一个要执行的函数。

然后您会发现函数体是相同的。为什么我要写这个函数n次,然后直接返回我自己

!如果你能在这里读到它,你已经可以理解它了。如果你不明白,就找一个例程打开自己写。

递归,其实是:从前有一座山,山顶有一座寺庙。庙里有个老和尚在讲故事。他在讲什么故事?他说:“从前有一座山

当整个故事达到5000字的时候,它就不会继续了。这5000字是退出条件。

理解经验是:1。不要跟着分析,先找到退出条件,这对理解算法为什么这样写很有帮助,递归只是一个过程。2当你不能理解程序时,把递归函数分成三个相同的函数,用迭代来连接。假设第三次达到退出条件,并且没有递归/迭代。在这种情况下,请再次理解。

数据结构和算法,递归运算时所用的递归栈是否算空间复杂度?

但是,该算法没有考虑特定实现技术所消耗的额外运行时间和空间。最典型的算法是计算斐波那契序列f(n)=f(n-1)f(n-2)。在递归情况下,空间复杂度是恒定的。然而,在c/c中,消耗的内存空间大于o(n),而在其他编译器中,它可能是一个常数,而且算法非常纯。他只考虑算法所消耗的空间来存储所需或生成的数据。

递归是用什么数据结构实现的递归借助什么数据结构数据结构中递归的定义


特信号 海瑞号

  • 关注微信关注微信

猜你喜欢

微信公众号