Logo
Section 1 / 8

简介

获取课程概览,包括目标受众和先修要求。

导入

简介

获取课程概览,包括目标受众和先修要求。

每个世界范围内的计算机科学课程都包含一门数据结构与算法课程。数据结构的重要性不言而喻;它们提升了我们的生活质量,甚至经常挽救生命。许多价值数百万乃至数十亿美元的公司都是基于数据结构建立起来的。本课程提供用 Java 编写的可执行程序,包含模板、类以及示例驱动程序,用于演示每种数据结构及其相关方法的工作原理。

现实世界中的例子

如果我们仔细思考,就会意识到我们一直在与数据结构互动。

  • **打开一个文件**:文件系统中的数据结构用于定位磁盘上该文件的各个部分,以便检索。这并不容易;磁盘包含数亿个存储块,而我们的文件内容可能分布在其中任意一个块中。
...
  • **在手机中查找联系人**:即使我们尚未完成拨号或输入,系统也会利用数据结构根据部分信息快速查找电话号码。这并不简单;手机中可能保存了大量联系人信息——所有曾经通过电话或邮件联系过的人——而手机的处理器速度较慢,内存也有限。
...
  • **登录我们最喜欢的社交网络**:网络服务器使用我们的登录信息查找账户信息。这并不容易;最流行的社交网络拥有数亿活跃用户。
  • **进行网页搜索**:搜索引擎利用数据结构查找包含我们搜索关键词的网页。这也不容易;互联网上有超过 85 亿个网页,每个网页都包含大量潜在的搜索关键词。
...
  • **拨打紧急服务电话**:应急服务网络通过一个将电话号码映射到地址的数据结构来查找来电者的具体位置,从而迅速派遣警车、救护车或消防车前往现场。这一点至关重要;打电话的人可能无法准确说出自己的地址,哪怕是一点延迟也可能导致生死之别。
...

课程内容

本课程的目标是为本科生计算机科学学生和软件工程师系统讲解一系列核心数据结构及其实现方式。以下是课程涵盖的主要主题:

  • 基于数组的各类线性数据结构实现
  • 基于链表的线性及更高级数据结构实现
  • 利用链表实现方式构建树、图以及基于外部存储的数据结构

每一章均从主题介绍开始,深入探讨其实现细节,并讨论预期的优化策略,最后简要提及相关的其他实现方式与概念。请务必运行代码以观察其实际运行效果,并自由尝试修改代码,以增强你的理解与信心。

目标受众

本课程涵盖了本科计算机科学课程中的主要知识点,适合学生和专业人士学习或复习相关概念与语法。模板化实现有时会变得复杂,这也正是本课程具有挑战性的原因之一。

先修要求

这不是一门入门级课程。它不会解释课程中所用编程语言的基本语法。如果你看到一段能运行但看起来不熟悉的代码,请将其视为一次探索新知识的机会,利用你的自学能力去深入理解。

效率的必要性