当前位置: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建模
校园推荐
·掏羊锅好吃,但可要小心地沟油呀!
·在线观看下载野兽男孩及剧情介绍
·不受侵害!如何鉴别地沟油小窍门?
·永鑫国际当家人濮晓芳美艳无比(图)
·盘点:大学考场出现的十大牛人
·害怕被裁员 白领“闪孕”保饭碗
文化推荐
·胡耀邦逝世前心态:去地方怕不欢迎
·万里退休之后不问事不管事不惹事
·对越自卫反击战:残骸断肢四处飞舞
·亚洲保存最完整恐龙首次展出(图)
·新款防水夹克可同时变身睡袋与帐篷
·绝无仅有 拿妃子抵赔款的荒唐帝王
职场推荐
·视频:局长日记受害人现身讨说法
·瑞信女斗小三各地方言版本大放送
·笑毙了!裸男力量哥当众推豪车爆红
·Erin Andrews安德鲁丝裸照大全(图)
·想赚钱?先学会赚钱八大经典定律
·职场中哪几类女人最让人生厌?
精彩教程 】 【 学院俱乐部 】 【 不懂就问我 】 【 对此感兴趣】 【 E-mail给朋友】 【 回频道首页 】 【 关闭窗口
文章日排行 文章周排行 文章月排行
·笑毙了!裸男力量哥当众推豪车
·瑞信女斗小三各地方言版本大放
·掏羊锅好吃,但可要小心地沟油
·恐怖朝鲜!币改失败枪决高官朴
·对越自卫反击战:残骸断肢四处
·不受侵害!如何鉴别地沟油小窍
·张馨予激情妖艳写真 挑战裸露极
·美女翻译张璐难掩性感网友为她
·500元面额人民币网上流传 银行
·中国韩国日本第一波霸精彩PK(图
·Erin Andrews安德鲁丝裸照大全
·笑毙了!裸男力量哥当众推豪车
·邓丽欣不雅照完美超越艳照门(图
·局长日记完整版及女主角照片全
·新年第一陷艳照门兽兽裸照被(图
·车模翟凌性爱曝光 兽兽门堪比阿
·兽兽门最新艳照 兽兽与车商拍视
·台湾女记者最新不雅照曝光 更撩
热点推荐










焦点文章
今日头条
笑毙了!裸男力量哥当众推豪车爆红
全球最年轻的十位亿万富翁(组图)
实拍北影三试放榜现场素颜美女(图)
8美女信凤姐当街“脱光”求嫁(图)
英国校长打开中国特教“一扇窗”

Fireworks CS4 从入门到精通视频教程
论坛精华
·photoshop完美扣图教 
·PhotoShop实例精选电 
·Photoshop入门教程快 
·打包笔刷 附图的~~ 
·文字处理的20几种方 
·史上最强最多 photo 
热点推荐
打造潮湿文字
PS阿凡达海报
动画制作宝典
Flash制作小游戏
热点关注
·邓丽欣不雅照超越艳照门
·PHP+MYSQL视频教程
·史上最强悍AutoCAD视频教程
·隐私?三招让硬盘无处泄密
·让你5天学通Flash
·最新最牛Windows 7视频教程
·8美女当街“脱光”求嫁
·张馨予激情写真挑战裸露极限
校园娱乐
使你心跳的少妇
鲜为人知的美女
女生大学毕业照
怀旧磁带封面赏
校园快递
·张馨予激情妖艳写真 挑战裸露极限
·美女翻译张璐难掩性感网友为她盖楼
·500元面额人民币网上流传 银行辟谣
·中国韩国日本第一波霸精彩PK(图)
·何炅辞职遭否认 却难掩事情的真相
·揭秘何平平逝世的“幕后凶手”(图)
·孔杰女友陈小匀迷人堪比邓丽君(图)
·永鑫国际当家人濮晓芳美艳无比(图)
·温总理:兄弟虽有小忿,不废懿亲
·老大的幸福亮相 黄金搭档能圆多久
·油客网蹿红网络 车友“直播”油价
焦点关注
文化频道
·古代宫中女人也饥渴 贪男色有奇招
·邓小平退休内幕:亲自点将江泽民
·惊!女头颅从天而降 内裤男跳楼身亡
·秘书刘崇文:胡耀邦下台前后揭秘
·周恩来一生中最鄙视的中共最高领导
·中共没挂帅却被称为“老总”的名将
·观测发现一掠日彗星将葬身太阳(图)
·对越自卫反击战:残骸断肢四处飞舞
·绝无仅有 拿妃子抵赔款的荒唐帝王
·胡耀邦逝世前心态:去地方怕不欢迎
热门关键字:笔记本 | 手机 | 笔记本电脑 | 数码 | 数码相机 | 服务器| 主板 | CPU | 音箱 | 显示器 | 一体机 | 服务器 | 信息化 | 解决方案 | 游戏
关于硅谷动力 | 广告服务 | 版权声明 | 加入硅谷动力 | 联系我们 | 建议/投诉 | 网站导航 | 加入收藏

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

京ICP证000088号