严蔚敏教材习题集:数组与广义表的旋转与马鞍点

需积分: 10 1 下载量 33 浏览量 更新于2024-09-20 1 收藏 53KB DOC 举报
在严蔚敏教材的习题集中,第五章主要探讨了数组和广义表的概念及其在编程中的应用。本章节包含两个核心题目:一个是关于数组的循环右移操作,另一个是查找矩阵中的马鞍点。 首先,题目5.18涉及到了一个名为`RSh`的函数,它实现了一个高效的数组元素循环右移算法。该函数接收一个整型数组`A`和一个整数`k`作为参数,目标是将数组中的元素向右移动`k`位,但要求仅使用一个辅助存储空间。关键在于,通过求解数组长度`n`和`k`的最大公约数`p`,将数组划分为若干个“循环链”。这样,每个元素都会恰当地在每个链中移动一次,确保了元素的完整覆盖。举例来说,如果`n=15`和`k=6`,那么最大公约数`p=3`,就会形成三条循环链,使得所有元素恰好移动一次。 接着,题目5.19提出了`Get_Saddle`函数,目的是在给定的矩阵`A`中寻找马鞍点。马鞍点是指矩阵中某个元素,其行最小值等于列最小值,即在一个矩阵中,一个元素既是该行中的最小值又是该列中的最小值。函数通过嵌套循环遍历矩阵,首先找到每一行的最小值,然后检查这些最小值是否同时满足列最小值的条件。如果找到了这样的元素,函数会输出提示信息,指出找到的马鞍点的坐标和值。 这两个题目展示了数组和矩阵操作在算法设计中的应用,不仅锻炼了对数据结构的理解,也考验了程序设计的逻辑思维和优化能力。通过解决这些问题,学生可以加深对数组操作的熟练度,并理解如何在实际问题中运用这些概念。同时,它们也提示我们在处理数据时要注意算法的效率和资源使用,尤其是在内存受限的情况下。