请写出下列递归算法的功能。  typedef&ens

题目

请写出下列递归算法的功能。  typedef struct node{          datatype data;          struct node *link;  } *LinkList;  int ALGORISM(LinkList list)  {          if(list==NULL)              return 0;          else              return 1+ALGORISM(list->link);  }

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

试写出折半查找的递归算法。


参考答案:
  [算法描述]
  int BinSrch(rectype r[ ],int k,low,high)
  //在长为n的有序表中查找关键字k,若查找成功,返回k所在位置,查找失败返回0。
  {if(low≤high) //low和high分别是有序表的下界和上界
  {mid=(low+high)/2;
  if(r[mid].key==k)return (mid);
  else if(r[mid].key>k)return (BinSrch(r,k,mid+1,high));
  else return (BinSrch(r,k,low,mid-1));
  }
  else return (0);//查找失败。
  }//算法结束

第2题:

递归算法 名词解释


参考答案:递归是构造计算机算法的一种基本方法。如果一个过程直接或间接地调用它自身,则称该过程是递归的,递归过程必须有一个递归终止条件,即存在“递归出口”。无条件的递归是毫无意义的。

第3题:

●若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用 (26) 算法,因为 (27) 。

(26) A.先递归后递推

B.先递推后递归

C.递归

D.递推

(27) A.递推的效率比递归高

B.递归宜于问题分解

C.递归的效率比递推高


正确答案:D,A
【解析】递推算法是一种常用算法,它的基本思想是:对本身具有递推关系的问题,其初始解已知或者很容易得到,然后从i=0开始,逐级从i=0,1,2,…进行递推,每次是从上一次递推的结果开始,利用递推关系,求出下一次的递推的结果,直到符合要求为止。递归算法相对递推算法要复杂得多。递归算法中是递推分解问题,然后再将最简单情况的解回归成大问题的解决。由于递归会引起一系列函数调用,有不少重复计算,其执行的效率也较低。
因此,若某问题既能用递归算法求解,又能用递推算法求解时,常常是使用递推方法求解要容易,效率高得多。

第4题:

什么是递归算法?通常情况下,递归算法在执行过程中需要借助何种数据结构?


正确答案:一个算法在结束本算法之前,直接或者间接地调用算法自身,这样的算法称为递归算法。递归算法在执行过程中通常需要借助于堆栈这种数据结构来完成。

第5题:

递归算法。


正确答案:
    

第6题:

下面描述中,不正确的是( )。

A.递归法的关键是必须有一个递归终止的条件。

B.递归算法要求语言具有反复自我调用子程序的能力。

C.对于同一个问题,递推算法比递归算法的执行时间要长。

D.递推算法总可以转换为一个递归算法。


参考答案:C

第7题:

若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用(14)算法,因为(15)。

A.先递归后递推

B.先递推后递归

C.递归

D.递推


正确答案:D

第8题:

已知f为单链表的表头指针, 链表中存储的都是整型数据,试写出实现下列运算的递归算法: ① 求链表中的最大整数; ② 求链表的结点个数; ③ 求所有整数的平均值。


参考答案:
  [算法描述]
  ①
  int GetMax(LinkList p)
  {
  if(!p->next)
  return p->data;
  else
  {
  int max=GetMax(p->next);
  return p->data>=max ? p->data:max;
  }
  }
  ②
  int GetLength(LinkList p)
  {
  if(!p->next)
  return 1;
  else
  {
  return GetLength(p->next)+1;
  }
  }
  ③
  double GetAverage(LinkList p , int n)
  {
  if(!p->next)
  return p->data;
  else
  {
  double ave=GetAverage(p->next,n-1);
  return (ave*(n-1)+p->data)/n;
  }
  }

第9题:

如果一个算法显式地调用自己则称为 ( )

A.直接递归

B.自用递归

C.间接递归

D.外用递归


正确答案:A

第10题:

数据结构与算法里,A函数调用B函数,B函数又调用了A函数,这种调用是(),下列选项不是正确答案的是()。

  • A、直接递归
  • B、间接递归
  • C、非递归
  • D、嵌套调用

正确答案:A,C,D

更多相关问题