一般情况下,将递归程序转化成为非递归程序应该设置(1),但是消除(2)时不需要使用。

admin2019-03-11  17

问题 一般情况下,将递归程序转化成为非递归程序应该设置(1),但是消除(2)时不需要使用。

选项 A、直接递归
B、间接递归
C、尾递归
D、递推

答案C

解析 将递归程序转化成为非递归程时,一般需要设置栈。但对于尾递归可将其转化成递推,不需要栈。尾递归调用就是作为方法的最后一个操作出现的递归的方法调用。例如:
   打印数组A[n]值的递归算法:
       void recfunc(int A[], int n){
         if(n>=0){
           cout<<A[n]<<"";
           n--;|
           recfunc(A, n);
         }
       }
     可以改写为:
       void iterfunc(int A[], int n){
       //消除了尾递归的非递归函数
         while(n>=0){
           cout<<"value"<<A[n]<<endl;
         n--;
         }
       }
转载请注明原文地址:https://kaotiyun.com/show/FgRZ777K
0

随机试题
最新回复(0)