什么是递归算法?通常情况下,递归算法在执行过程中需要借助何种数据结构?
正确答案
答案解析
相似试题
(单选题)
在设计解决递归问题的非递归算法时,大多数情况下都要用到()结构。
(简答题)
已知非空二叉排序树采用二叉链表存储结构,链结点构造为,根结点指针为T。下面给出的是在该二叉排序树中查找数据信息为item的结点的非递归算法,若查找成功,则算法返回被查到结点所在链结点指针,否则,算法返回信息NULL。 请在算法中的空白处(横线上方)填入必要的内容,使得算法完整正确。
(简答题)
已知对二叉排序树进行中序遍历可以得到该二叉树所有结点组成的按值从小到大排列的中序序 列。若二叉树采用二叉链表存储结构,链结点构造为, 根结点指针为T,请写一非递归算法,判断该二叉树是否为二叉排序树。若是二叉排序树,算法返回1,否则,算法返回0。
(简答题)
对于一个带权连通图,在什么情况下,利用普里姆(Prim)算法与利用克鲁斯卡尔(Kruskal)算法可能生成不同的最小生成树?
(简答题)
请写一非递归算法,对于任意给定的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。
(简答题)
我们通常采用大O形式来表示算法的时间复杂度。例如,在一个长度为n的顺序表中顺序查找一个数据元素的过程的时间复杂度为O(n),其中,n表示问题的规模。那么,O(1)表示什么?请举出一个例子加以说明。
(简答题)
请写出下列递归算法的功能。 typedef struct node{ datatype data; struct node *link; } *LinkList; int ALGORISM(LinkList list) { if(list==NULL) return 0; else return 1+ALGORISM(list->link); }
(简答题)
下面是生产者与消费者进程的算法描述,请分析进程中,两个P操作和两个V操作是否可以交换?为什么?
(单选题)
算法分析的主要任务是分析()。