当前位置:eNet硅谷动力 > 教育频道 > 技术文章
数据结构学习(C++)—序言
2005-04-24 12:53 作者:happycock 来源:eNet论坛 [收藏到e起顶]
【简 介】
  题外话:先前有一篇文章叫《用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这种文档结构并不招人喜欢——很乱。

  于是我采用了单工程单cpp的结构,就是一个工程只有一个cpp文件,放main(),其他的部分都是头文件,声明和实现放在一起——其实这是违反C++规范的,C++要求函数必须声明原型,实际上,我觉得这很罗嗦(我这是典型的C后遗症,以前用TC时为了不声明原型,把函数都放到main()前面),声明一下原型,我认为这和设定密码需要确认一个道理。由于使用的IDE环境,把声明单独集中起来作为一个文件已经没有必要——ClassView窗口很好用,就因为如此,我几乎从来不去看类的声明文件。除非你提供的是一个库,在你的工程中单独的声明文件已经不是必须的了。当然,这里的前提是从一个空的工程建立你的项目。如果你使用了AppWizard,我很难想象不使用ClassWizard的。因为这时文档的结构已经确定了,你所做的实际上是在修修补补。

  什么人适合读这些文章

  l 刚开始从C过渡到C++的人,看完这些后,会体会到C++的新特性。

  l 和我一样研读那本黄皮书的人,希望看完之后能更好的理解和学习。

  l 从未编写过超过1000行代码程序的人,这样我们才能达到共鸣。因为我们从来不使用工具和库文件,做的事都是在编程老手看来很蠢的事。

  一些约定

  假定你使用的是VC6,先建立一个Win32 Console Application的empty project。后面将陆续往这个工程中添加文件(就是将后面介绍的每一个文件都添加进去,不然到时候找不到xx.h不要埋怨),每一个#ifndef xx_H~#endif和其中的部分为一个头文件,文件名为xx.h。例如:

  #ifndef List_H

  #define List_H

  ……

  #endif

  这一大块为一个文件,文件名为List.h
关键字: 培训认证  技术文章 
专题精选
图片教程
3dmax建模
校园推荐
·90后少女玩劲舞团认识男友怀孕
·12星座“脑残指数”排行榜
·装嫩扮纯最失败VS最成功的十大女星
·80后出生时流行的顺口溜儿
·揭秘:男人眼中的美女标准(组图)
·大学各系男生追MM的专业短信
文化推荐
·女孩险遭面试者强奸细节:装疯逃脱
·当汉武帝的皇后到底有多么难?
·希特勒死后320名纳粹女军官自尽
·刘少奇最后一次出访前后(图)
·秦淮名妓董小宛从良之后的食色生活
·金牛座气质美女李小冉 绝世好老婆
职场推荐
·实战:一种解决大学生就业的新尝试
·白领丽人职场江湖如何八面玲珑
·求职者因使用山寨手机被考官拒绝
·三成上班族已患心灵感冒(图)
·让薪水翻倍的13条跳槽黄金准则
·解码08职业培训 市场活跃促转型
精彩教程 】 【 学院俱乐部 】 【 不懂就问我 】 【 对此感兴趣】 【 E-mail给朋友】 【 回频道首页 】 【 关闭窗口
文章日排行 文章周排行 文章月排行
·暑期学生补课市场越“禁”越“
·科学不是观察世界的唯一一扇窗
·今年毕业生就业率68% 同比基本
·13岁男孩高考654分北航本硕博连
·北京大学一名研究生跳楼自杀
·福建安溪一职校校长嫖宿初中女
·毕业文化:裸奔宣泄青春 衫文化
·国外大学频抛橄榄枝 留学还是高
·暑期学生补课市场越“禁”越“
·13岁男孩高考654分北航本硕博连
·人民大学推出高校排行榜(图)
·“神童班”高考成绩多超过600分
·写古体诗高考生否认提前写好作
·广东:名校开出录取预估分数线
·高校毕业生入伍 国家代偿学费
热点推荐










焦点文章
今日头条
暑期学生补课市场越“禁”越“火”
13岁男孩高考654分北航本硕博连读
国外大学频抛橄榄枝 留学还是高考
东莞小学又有7名学生被确认染甲感
82%内地富裕家庭欲送子女留学海外

全国计算机等级考试二级(VB语言)
论坛精华
·photoshop完美扣图教 
·史上最强最多 photo 
·Photoshop给多斑的人 
·Photoshop将美女照片 
·精灵女孩白夜 
·PhotoShop实例精选电 
热点推荐
绘制逼真金蛋
浪漫婚纱照片
Flash视频编程
Ulead GIF教程
热点关注
·Flash CS4 制作经典小游戏
·C语言程序设计视频教程
·PHP+MYSQL开发视频教程
·Flash CS4从入门到精通教程
·服装设计与效果图绘制教程
·21视频之Fireworks8网页制作
·Vray高级实例应用视频教程
·CorelDRAW14入门到高级教程
校园娱乐
使你心跳的少妇
鲜为人知的美女
女生大学毕业照
怀旧磁带封面赏
校园快递
·拼命赚钱养男人10女星(组图)
·做家务的男人是“潜力股”吗?
·丰满迷人的新加坡女生(组图)
·身材超好体育大学校花(组图)
·装嫩扮纯最失败VS最成功的十大女星
·17岁少女宿舍产女塞内裤捂死
·揭秘:男人眼中的美女标准(组图)
·90后少女玩劲舞团认识男友怀孕
·大学各系男生追MM的专业短信
·就业压力让大学生情侣忍痛割爱
·难以置信:女生的友谊如此脆弱
焦点关注
文化频道
·秦淮名妓董小宛从良之后的食色生活
·希特勒死后320名纳粹女军官自尽
·原副总理:在国务院喝茶要收费
·女孩险遭面试者强奸细节:装疯逃脱
·相邻两村360年不结亲源自古老传说
·当汉武帝的皇后到底有多么难?
·刘少奇最后一次出访前后(图)
热门关键字:笔记本 | 手机 | 笔记本电脑 | 数码 | 数码相机 | 服务器| 主板 | CPU | 音箱 | 显示器 | 一体机 | 服务器 | 信息化 | 解决方案 | 游戏
关于硅谷动力 | 广告服务 | 版权声明 | 加入硅谷动力 | 联系我们 | 建议/投诉 | 网站导航 | 加入收藏

网站合作、内容监督、商务咨询、投诉建议:010-65245588
合作建议:hezuo@mail.enet.com.cn
Copyright © 2000--2009 硅谷动力公司版权所有 京ICP证000088号

京ICP证000088号