### 严蔚敏数据结构课件知识点概览
#### 一、绪论
- **计算机的应用领域**:计算机的应用已超越传统的科学计算领域,广泛应用于控制、管理和数据处理等非数值计算领域。
- **计算机科学的核心问题**:计算机科学主要研究如何用计算机表示和处理信息。其中,“信息的表示”和“信息的处理”是两个核心问题。
- **数据结构的重要性**:随着应用问题的复杂化和数据量的增长,有效的数据表示和组织对于提高程序效率至关重要。因此,分析对象特征及对象间的关系成为了数据结构课程的核心。
#### 二、教材及参考文献
- **主要教材**:《数据结构(C语言版)》,作者为严蔚敏、吴伟民,由清华大学出版社出版。
- **参考书籍**:
- 《数据结构》,作者为张选平、雷咏梅,由机械工业出版社出版。
- 《数据结构与算法分析》,作者为Clifford A. Shaffer,译者为张铭、刘晓丹,由电子工业出版社出版。
- 《数据结构习题与解析(C语言版)》,作者为李春葆,由清华大学出版社出版。
- 《数据结构与算法》,作者为夏克俭,由国防工业出版社出版。
#### 三、数据结构课程的意义
- **综合性和基础性**:数据结构是计算机科学的一门综合性专业基础课程,位于数学、计算机硬件与软件之间的核心位置。
- **重要性**:不仅是程序设计的基础,也是实现编译程序、操作系统、数据库系统等系统程序和大型应用程序的重要基础。
#### 四、数据结构的基本概念
- **数据结构定义**:数据结构是相互之间具有特定联系的数据元素的集合,包括四种基本类型的逻辑结构:集合、线性结构、树型结构和图状结构或网状结构。
- **数据结构的形式定义**:`Data-Structure=(D, S)`,其中`D`是数据元素的有限集,`S`是`D`上关系的有限集。
- **实例解析**:
- **线性表结构**:例如电话号码查询系统,记录了名字和电话号码的配对,形成一对一的线性关系。
- **树形结构**:例如磁盘目录文件系统,每个子目录只有一个父目录,形成一对多的层次关系。
- **网状结构**:例如交通网络图,不同地点之间可以有多条路径连接,形成多对多的非线性关系。
#### 五、数据结构的存储方式
- **存储结构**:数据元素之间的关系可以通过元素间的自然关系或人为定义的关系来表示。存储结构的设计直接影响数据处理的效率。
#### 六、解决问题的一般步骤
- **抽象出数学模型**:如何用数据形式描述问题,即将实际问题转换为适当的数学模型。
- **数据量与数据间关系**:考虑问题涉及的数据量大小及数据之间的关系。
- **存储数据与体现关系**:确定如何在计算机中存储数据以及如何体现数据之间的关系。
- **数据运算**:明确处理问题时需要对数据执行的运算。
- **程序性能**:评估所编写的程序的性能。
#### 七、案例分析
- **电话号码查询系统**:通过线性表结构展示了一对一的线性关系。
- **磁盘目录文件系统**:通过树形结构展示了一对多的层级关系。
- **交通网络图**:通过网状结构展示了多对多的非线性关系。
#### 八、总结
数据结构课程旨在培养学生理解并掌握数据的组织方法和处理技巧,为解决实际问题提供有效工具。通过学习数据结构,学生能够更好地理解和实现复杂的算法和程序设计思想,为未来的编程工作打下坚实的基础。