李春葆《数据结构教程》(第4版)课后习题-递归(圣才出品)

李春葆《数据结构教程》(第4版)课后习题-递归(圣才出品)
李春葆《数据结构教程》(第4版)课后习题-递归(圣才出品)

第5章递归

1.有以下递归函数:

分析调用fun(5)的输出结果。

答:调用递归函数fun(5)时,先递推直到递归出口,然后求值。这里的递归出口语句是,递推时执行的语句是,求值时执行的语句是调用fun(5)的输出结果如下:

2.已知A[n]为整数数组,编写一个递归算法求n个元素的平均值。

答:设avg(A,i)返回A[0..i]这i+1个元素的平均值,则递归模型如下:

对应的递归算法如下:

求A[n]中n个元素平均值的调用方式为:avg(A,n-1)。

3.设计一个算法求整数n的位数。

答:设f(n)为整数n的位数,其递归模型如下:

对应的递归算法如下:

4.设有一个不带表头节点的单链表L,其节点类型如下:

设计如下递归算法:

(1)求以L为首节点指针的单链表的节点个数。

(2)正向显示以L为首节点指针的单链表的所有节点值。(3)反向显示以L为首节点指针的单链表的所有节点值。(4)删除以L为首节点指针的单链表中值为x的第一个节点。(5)删除以L为首节点指针的单链表中值为x的所有节点。

(6)输出以L为首节点指针的单链表中最大节点值。

(7)输出以L为首节点指针的单链表中最小节点值。

答:根据单链表的基本知识,设计与各小题对应的递归算法如下:(1)

(2)

(3)

(4)

(5)

(6)

(7)

上机实验题5

实验题1 编写一个程序exp5-1.cpp,求解皇后问题:在n×n的方格棋盘上,放置n 个皇后,要求每个皇后不同行、不同列、不同左右对角线。要求:

(1)皇后的个数n由用户输入,其值不能超过20,输出所有的解。

(2)采用递归方法求解。

实验题2编写一个程序exp5-2.cpp,求解背包问题:设有不同价值、不同重量的物品

n件,求从这n件物品中选取一部分物品的方案,使选中物品的总重量不超过指定的限制重量,但选中物品的总价值最大。

相关主题
相关文档
最新文档