《数据结构(C++)》学习辅导系列:序言(1)

《数据结构(C++)》学习辅导系列:序言(1),第1张

《数据结构(C++)》学习辅导系列:序言(1),第2张

题外话:先前有一篇文章叫《用c++模板描述的链表、栈、队列(声明与实现)》,当时是第一次发表文章(我才注册没几天),很不成熟,改了又改不说,还弄的老长,不利于阅读。于是我重写了一下,并且想做成一个系列,这从我的标题可以看出来。

--------------------------------------------------------------------------------


  题外话:先前有一篇文章叫《用c++模板描述的链表、栈、队列(声明与实现)》,当时是第一次发表文章(我才注册没几天),很不成熟,改了又改不说,还弄的老长,不利于阅读。于是我重写了一下,并且想做成一个系列,这从我的标题可以看出来。
好,言归正传。

  本篇为后面一系列文章的序言,旨在说明写作的目的,以及写作的风格;或者说是为自己可能的错误,预先给个托词。如果您不想听我在这废话,请跳过本篇,直接阅读后面的文章。但是这样,我不能保证,您在阅读的同时,不会骂我白痴。

  为什么写这些文章

  这些文章可以说是《数据结构(用面向对象方法与c++描述)》这本书的读书笔记,但也不完全是。数据结构是计算机专业必修课——几乎每个计算机专业的学生都会推崇他的重要;同时,也是其他专业转修计算机专业的一个难点。

  从学习的角度来说,严蔚敏的《数据结构(c语言版)》是本不错的书。但是,c语言不是描述的理想工具。《数据结构(c语言版)》的前言里是这样说的:“虽然c语言不是抽象数据类型的理想描述工具,但鉴于目前和近一、二年内,……并增添了c++语言的引用调用参数传递方式等,构成了一个类c描述语言。”

  从抽象数据类型的定义——一个数学模型以及定义在该模型上的一组操作——可以看出,面向对象语言中类的概念和这个定义很接近,加之c语言的普及,用c++来描述于是就成了顺理成章的事情。

  于是,清华在2002年的考研参考书目中对《数据结构》的参考书做了改变,使用《数据结构(用面向对象方法与c++描述)》(殷人昆等编著,isbn 7-302-03405- 2/tp1845)作为参考书,而实际上考的也是(废话,不是那叫误导)。坦白的讲,原书把教学目的和提供实例的目的搞混了,结果是个四不象:作为教科书,条理不清晰;提供各个方法的实现,也不是很实用,相反,重复建设太多。至于错误,可能有些是笔误,比如少个友元声明了,不是继承而使用别的类的成员函数没有指明了;还有一些,就是考虑不够周全。

  不管怎么说,现在不是挑书的时候,你想考清华的计算机专业研究生吗,这本书是你不二的选择。我发现读懂此书的方法,就是自己按照书上的思路,以及实际应用的分析,自己重新实现各种抽象数据类型。这样做还有一个好处,为自己将来积累一点财富。

  我的写作风格

  编译器我选用的是vc6,因此,我不保证我提供的代码在别的编译器也能通过——从头到尾只使用了iostream.h,没有任何别的库,当然更没有mfc,标准的c++代码应该没什么问题。全部是手工完成的代码,没有使用classwizard,主要是不喜欢那些乱七八糟的预处理和注释。这样完成之后,发现c++的声明和实现分开xx.h+xx..ccp这种文档结构并不招人喜欢——很乱。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 《数据结构(C++)》学习辅导系列:序言(1)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情