此版本中,内尔·戴尔(Nell Dale)不再是《数据结构(C Plus 实现)(第 6 版)》的唯一作者。
本书加入了两位作者——奇普·威姆斯(Chip Weems)和蒂姆·理查兹(Tim Richards),并继续保持
以往版本的优良传统。在其他论著方面,奇普与内尔合著了三十多年,如 Java Plus Data Structures,为
本书及其早期版本奠定了基础,并对教学方法的改进作出了重大贡献。在 Programming and Problem
Solving in C 的最新版本中,蒂姆、奇普和内尔三人密切合作,共同致力于让世界各地的学生能够取
得成功,同时他们对教学的热爱也激励着学生们每天走进教室学习。
在过去的二十年里,传统的数据结构课程已经发展到更广泛的主题,包括抽象数据类型(Abstract
Data Type,ADT)、软件工程和算法的基本分析。
数据结构(Data Structures)研究如何在组织关系中表示数据集合,以及如何编写相应操作的算法。
抽象数据类型是指一个定义属性的数据类型以及这个数据类型上的一组操作。计算机科学教育的重点
向更加抽象的方向转变。现在,在程序中除了研究如何表示对象之外,还研究数据对象类型的抽象属性。
Johannes J.Martin 说得非常简单:“从观点来看,数据对象是由数据类型(对于使用者)或数据结构(对
于实现者)来描述的。”a
抽象的设计和实现都与软件工程密切相关,软件工程旨在将工程方法应用于开发可靠、健壮和高
质量的软件。一个糟糕的抽象会导致一组烦琐的应用案例,迫使程序员要么编写不必要的复杂代码,
要么忽略重要的有效性检查。一个糟糕的实现可能导致效率低下或容易出错。
高效实现的一个方面是能够分析既定算法。因此,在本书中,我们将抽象和应用程序的实现分开
介绍,并分析所介绍的算法。