严蔚敏数据结构习题集C语言解法与分析

需积分: 15 0 下载量 95 浏览量 更新于2024-07-29 收藏 275KB DOC 举报
"严蔚敏数据结构习题集答案提供了对数据结构课程中习题的解答,主要针对C语言版的教材。这份资料对于专升本的学生在复习和准备考试时有帮助。" 在这份习题集中,我们可以看到涉及的数据结构相关知识点包括: 1. **冒泡排序算法**:在1.16题中,展示了如何用冒泡排序算法对三个数进行从大到小的排序。冒泡排序是一种简单的排序方法,通过重复遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 2. **斐波那契序列**:1.17题中,给出了求解k阶斐波那契序列第m项的值的算法。斐波那契序列是一个数列,其中每个数字是前两个数字的和。这里采用了一种非递归的方式,时间复杂度为O(m),避免了递归导致的时间复杂度O(k^m)或使用中间结果的O(m^2)。 3. **结构体与枚举类型**:1.18题中定义了两个结构体类型`resulttype`和`scoretype`。`resulttype`包含了参赛者的运动项目、性别、学校名称、比赛结果和分数等信息。枚举类型`enum`被用来定义性别,这使得代码更易读,同时也便于处理和比较性别数据。`scoretype`结构体用于存储每所学校男女总分和团体总分。 4. **数组和指针操作**:习题集中的代码涉及到数组的使用,如在1.18题中,`result[]`数组存储了比赛结果,`score[]`数组用于计算各校的得分。指针被用来访问和修改结构体成员,如`char *result`和`char *sport`。 5. **函数定义和调用**:每个习题的解答都包含了函数的定义和使用,例如`print_descending`函数用于输出排序后的三个数,`fib`函数用于计算斐波那契数列,以及`summary`函数用于计算各校的总分。这些函数展示了如何根据具体问题设计和实现功能。 通过这些习题,学生可以加深对数据结构基本概念的理解,提高编程技巧,并熟悉如何应用这些知识来解决实际问题。这些习题集对于理解和掌握数据结构,特别是C语言实现数据结构的技巧,是非常有价值的参考资料。