导入
简介
获取课程概览,包括目标受众和先修要求。
全球每一个计算机科学课程都包含一门数据结构与算法课程。数据结构的重要性不言而喻;它们不仅提升了我们的生活质量,甚至经常在日常生活中挽救生命。许多价值数百万乃至数十亿美元的公司都是基于数据结构建立起来的。本课程包含用C++编写的可执行程序,涵盖模板、类以及示例驱动程序,用于演示每种数据结构及其相关方法的工作原理。
现实世界中的例子
如果我们仔细思考一下,就会意识到我们一直在与数据结构打交道。
- **打开一个文件**:文件系统使用数据结构来定位磁盘上文件的各个部分,以便将其读取出来。这并不容易;磁盘包含数亿个存储块,而我们的文件内容可能分布在其中任意一个块中。
...
- **在手机中查找联系人**:即使我们尚未完成拨号或输入,系统也会利用数据结构根据部分信息快速查找电话号码。这并不简单;手机中可能保存了大量联系人信息——所有曾经通过电话或邮件联系过的人——而手机的处理器速度有限,内存也不多。
...
- **登录我们最喜欢的社交网络**:网络服务器会利用我们的登录信息查找账户信息。这并不容易;最流行的社交网络拥有数亿活跃用户。
- **进行网页搜索**:搜索引擎使用数据结构来查找包含我们搜索关键词的网页。这也不容易;互联网上有超过85亿个网页,每个网页都包含大量潜在的搜索关键词。
...
- **拨打紧急服务电话**:应急服务网络通过一个将电话号码映射到地址的数据结构,快速定位来电者的位置,以便迅速派遣警车、救护车或消防车。这一点至关重要;打电话的人可能无法准确说出自己的位置,哪怕是一点延迟,也可能决定生死。
...
课程内容
本课程的目标是全面讲解一系列数据结构及其在本科计算机科学学生和软件工程师中的实现方法。以下是课程涵盖的主要主题:
- 基于数组的各类线性数据结构实现
- 基于链表的线性及更高级数据结构实现
- 利用链表实现方式处理树、图以及基于外部存储的数据结构
每一章都会从该主题的介绍开始,深入探讨其实现细节,并讨论预期的优化策略,最后简要提及相关的其他实现方式和概念。请务必运行代码以观察其实际运行效果,并自由地修改代码以增强你的理解与信心。
目标受众
本课程涵盖了本科计算机科学课程中的核心内容,适合学生和专业人士学习或复习相关概念与语法知识。基于模板的实现有时会变得复杂,这也增加了本学科的学习挑战性。
先修要求
这不是一门入门级课程。它不会解释课程中所用编程语言的基本语法。如果你看到一段看似熟悉但又不太理解的代码,请将其视为一次探索新知识的机会,充分发挥你的自学能力。