数据结构经典例题解析:严蔚敏1800题

需积分: 8 2 下载量 113 浏览量 更新于2024-07-31 收藏 1.4MB PDF 举报
"数据结构1800题(严蔚敏)" 这是一份专注于数据结构的习题集,源自严蔚敏教授的教材,主要针对计算机科学考研备考的学生。题目涵盖广泛,包括了数据结构的基本概念、算法分析等多个方面。 1. **算法的复杂性**:描述中提到的“计算的复杂性”指的是算法在处理特定问题时所需资源(如时间和空间)的数量。A. 效率通常指运行速度,C. 现实性与问题的实际应用相关,D. 难度则更主观,不是严格衡量标准。B. 复杂性是衡量算法性能的关键指标,包括时间复杂度和空间复杂度。 2. **时间复杂度与问题规模**:算法的时间复杂度取决于问题的规模,即输入数据的大小。A. 问题的规模是关键因素,B. 待处理数据的初态可能影响具体运行时间,但不影响复杂度的定义。C. 两者都对时间复杂度有影响。 3. **计算机算法的定义**:算法是一系列解决问题的明确指示,必须具备可执行性、确定性和有穷性。A. 计算方法过于宽泛,B. 排序方法和D. 调度方法是算法的应用场景。C. 解决问题的步骤序列更符合算法的定义。对于第二个空格,B. 可执行性、确定性、有穷性是算法的基本特性。 4. **算法的性质**:算法是问题求解步骤的描述,应满足基本特性,包括可执行性、确定性和有穷性。A. 程序是实现算法的一种形式,B. 是正确的描述,C. 指出了算法的基本属性,D. A和C正确。 5. **算法与程序的关系**:错误的说法是B。算法和程序虽然密切相关,但算法是逻辑上的步骤描述,而程序是用特定编程语言实现的算法。A. 算法最终可能由程序实现,C. 可行性意味着没有歧义,D. 描述了所有错误选项。 6. **算法的性质**:错误的说法是C。算法原地工作不一定不需要额外空间,只是尽量减少辅助空间;O(n)复杂度并不总是优于O(2^n),取决于实际问题和数据;时间复杂度是对最坏情况的上界估计。所以,(1)和(4)是错误的,答案是C。 7. **数据结构分类**:根据数据元素之间的逻辑关系,数据结构可分为线性结构和非线性结构。A. 动态和静态是关于内存管理的,B. 顺序和链式是物理存储方式,D. 初等和构造型是数据结构的构建方式。 8. **存储结构无关术语**:循环队列、链表和哈希表都与特定的存储方式相关,而D. 栈是一个抽象数据类型,其定义不依赖于具体的存储实现。 9. **线性结构**:线性结构是指数据元素之间存在一对一的关系,D. 串(字符串)是线性结构,而A. 广义表、B. 二叉树和C. 稀疏矩阵是非线性结构。 10. **与存储结构无关的术语**:A. "栈"是抽象数据类型,其操作定义独立于具体存储方式。 这些题目涵盖了数据结构和算法的基础概念,对于准备计算机科学研究生入学考试的学生来说,是提高理论理解和实践能力的重要资源。通过解答这些题目,学生可以深入理解数据结构的分类、算法的时间复杂度分析以及算法设计的基本原则。