发在《计算机教育》上,可下载pdf文件
http://www.jsjjy.com/info/shownews.asp?newsid=11948
摘录(第1节)
提起数据结构,大多数人都认为它是一门基础性课程。从某种角度看,数据结构有点像高等数学,一是两者内容大多早已成熟,二是它们都积累了大量习题可供学生练习。这样一来,应试倾向的数据结构课程应运而生,无论是在教学和学习中,这种倾向性都非常明显。比如在链表这部分内容的讲授中,教师一般会给出各种不同的链表变种作为习题。又比如在讨论二叉树遍历时,学生要花费大量精力去学习各种遍历的非递归形式。虽然学习这些内容可以提高逻辑思维能力,但学习数据结构的目的是为程序设计、更是为算法设计而服务,因此其重点应放在如何挑选或设计合适的数据结构,而不是把大量精力花在这些不太实用的细节问题上。
另一方面,数据结构还有许多值得研究的问题。许多数据结构不但性能优越,而且构造精巧,不逊于任何一件艺术品,比如二项堆与Fibonacci堆。而发展成熟的数据结构很快便可应用于工业界,如STL中的vector容器。研究人员不但需要设计新的数据结构以获得好的性能,并且还要对它们进行细致的分析以了解其性能极限(即下界问题)。此外,目前有若干专门的学术会议致力于数据结构的设计与分析,如交替举办的The Workshop on Algorithms and Data Structures (WADS)和The Scandinavian Workshop on Algorithm Theory(SWAT)。今年是WADS举办20周年,这也充分说明了数据结构这个经典的主题依然有着蓬勃的生命力。
因此,在数据结构的教学过程中,我们需要一本合适的数据结构教材,既能学习到如何使用和选择数据结构,还能深入了解数据结构的设计与分析。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
P.S.《数据结构基础》一书已经作为研究生入学计算机统考大纲解析的首选参考教材,见大纲解析的参考文献[1]。