简答题

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

正确答案

计算由list所指的线性链表的长度。

答案解析

相似试题
  • 已知对二叉排序树进行中序遍历可以得到该二叉树所有结点组成的按值从小到大排列的中序序 列。若二叉树采用二叉链表存储结构,链结点构造为, 根结点指针为T,请写一非递归算法,判断该二叉树是否为二叉排序树。若是二叉排序树,算法返回1,否则,算法返回0。

    简答题查看答案

  • 已知非空二叉排序树采用二叉链表存储结构,链结点构造为,根结点指针为T。下面给出的是在该二叉排序树中查找数据信息为item的结点的非递归算法,若查找成功,则算法返回被查到结点所在链结点指针,否则,算法返回信息NULL。  请在算法中的空白处(横线上方)填入必要的内容,使得算法完整正确。

    简答题查看答案

  • 已知指针为list且不带头结点的非空线性链表的结点构造为, 结点按data域值的大小从小到大链接。请写出在该链表中插入一个数据信息为item的新结点的算法,要求插入新结点后链表中结点仍然按data域值的大小从小到大链接。

    简答题查看答案

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

    简答题查看答案

  • 请写一非递归算法,对于任意给定的k值,该算法在长度为 n、且元素按值严格递增排列的顺序表A[1..n]中采用折半查找法查找值不大于k的最大元素,若表中存在这样的元素,则算法返回该元素在表中的位置,否则,算法返回信息0。(假设表中元素分别为一个正整数)  例如,对于顺序表A[1..10]=(2, 4, 6, 8, 10, 12, 14, 16, 18, 20),  当k=8时,满足条件的元素为8,返回位置4;  当k=13时,满足条件的元素为12,返回位置6;  当k=1时,无满足条件的元素,返回信息0。

    简答题查看答案

  • 在设计解决递归问题的非递归算法时,大多数情况下都要用到()结构。

    单选题查看答案

  • 请设计一C语言函数(注:只要求写出该函数,不要求写出完整程序),该函数的功能是将一个int类型的数组A[0..n-1]的所有元素循环右移k个位置。  例如,对于某数组,当k=3(即把数组所有元素循环右移3位)时,是将

    简答题查看答案

  • 下列算法的功能是在由list所指的非空线性链表的第i个结点(假设链表中存在第i个结点,且i≥1)后面插入一个由p指的结点。  请在算法的空白处(横线上方)填上必要的内容,使算法完整。

    简答题查看答案

  • 下面算法的功能是依次打印十进制数num对应的八进制形式的各位数字。算法中用到了一个采用链式存储结构的堆栈。  请在算法的空白处(方框内)填入必要的内容,使算法完整。

    简答题查看答案