当前位置: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建模
校园推荐
·38岁女硕士建贞操网并公开处女鉴定
·丈夫酒后强奸妻子闺密未遂被捕
·男子索钱遭拒杀人后喝药脱裤自杀
·官员之子撞死剧作家杨戈平等3人
·女童在幼儿园被丝巾缠住窒息身亡
·男子因兔子被邻居狗咬死捅死邻居
文化推荐
·让人胆战心惊的古代性刑具(图)
·郑成功死因:永历帝被害祖坟遭掘
·主人与爱犬失散7年偶遇 感动网民
·百元人民币“跪拜猫”系战国图案
·方舟子:如果败诉只赔钱不道歉
·以休假结束政治生涯的苏联领导人
职场推荐
·禽兽丈夫酒后强奸妻子闺密未遂被捕
·局长儿媳炫富在药监局的公公被人肉
·偷情败露官员撞死女下属及腹中胎儿
·张梦怡全裸浴照曝光其干爹被人肉图
·3天换3名字的甘肃女主播玺悦被人肉
·妇产医院医生违规推荐上千元保健品
精彩教程 】 【 学院俱乐部 】 【 不懂就问我 】 【 对此感兴趣】 【 E-mail给朋友】 【 回频道首页 】 【 关闭窗口
文章日排行 文章周排行 文章月排行
·38岁女硕士建贞操网并公开处女
·让人胆战心惊的古代性刑具(图)
·禽兽丈夫酒后强奸妻子闺密未遂
·局长儿媳炫富在药监局的公公被
·丈夫酒后强奸妻子闺密未遂被捕
·女童在幼儿园被丝巾缠住窒息身
·张梦怡全裸浴照曝光其干爹被人
·38岁女硕士建贞操网并公开处女
·麦当劳经理操作间强迫女工为其
·让人胆战心惊的古代性刑具(图)
·孟加拉童妓为招嫖服用催熟药高
·张妙家人像药家索赔偿款被批不
·实拍低俗下流的娱乐节目现场高
·烟花妹妹淫秽照片曝光有全裸SM
·女星接客视频曝光后女主角已被
·女会计和老总偷情开房拍不雅照
·大学男生闯女浴室偷拍女生洗澡
·某航空公司空姐自曝闺房露点不
今日头条
“雷锋”符号 学生:是有钱人吗?
张梦怡全裸浴照曝光其干爹被人肉图
微博炫富:送狗爱马仕包嘲笑穷人
县城高中之困农村学生的出路何在?
2内裤男拖回裸男 3男搞性爱Party!

论坛精华
·操盘手主力版免费 选股更精准
·酷6K歌 与美女一起在线视频K歌
·找寻同城有缘人 在线万人同K歌
·美图秀秀图像处理工具最新版
·瑞星全功能安全软件2011下载
·愤怒的小鸟 绿色中文版 下载
热点推荐
打造梦幻美女
鼠绘古装美女
调出美女色调
Photoshop教程
热点关注
·Firework CS5 视频教程
·一个月,成就电脑高手之路
·《从实例学VC》视频教程
·2D游戏原画设计视频教程
·ASP.NET编程技巧范例大全
·Java软件开发高级视频教程
·C++从新手到高手视频教程
·C#语言基础视频教程
校园娱乐
周秀娜3D洞房片
陈慧琳洞房艳照
苍井空新片露点
台湾最美胸部
校园快递
·38岁女硕士建贞操网并公开处女鉴定
·张妙家人像药家索赔偿款被批不要脸
·元宵节祝福短信——幽默篇
·19岁青年奸杀91岁老妪为什么?详情
·丈夫酒后强奸妻子闺密未遂被捕
·副行长与女下属车震被劫不敢报警
·初中生炫富称iphone太多需砸掉一台
·元宵节祝福语短信最黏人的情侣篇
·“半文盲级”的20位当红明星
·元宵节祝福短信 祝福语送长辈篇
·男子领养女儿系妻子与其前夫所生
焦点关注
风尚视觉
文化频道
·让人胆战心惊的古代性刑具(图)
·残忍明皇朱棣曾肢解活人祭奠妹夫
·主人与爱犬失散7年偶遇 感动网民
·山东发现成吉思汗圣旨石刻(图)
·汉末三国时期为何名人都是单字名?
·军事奇阵“八卦九宫阵”现北岳恒山
·元宵节为何吃元宵呢?专家细说由来
·百元人民币“跪拜猫”系战国图案
·以休假结束政治生涯的苏联领导人
·郑成功死因:永历帝被害祖坟遭掘
热门关键字:笔记本 | 手机 | 笔记本电脑 | 数码 | 数码相机 | 服务器| 主板 | CPU | 音箱 | 显示器 | 一体机 | 服务器 | 信息化 | 解决方案 | 游戏
关于硅谷动力 | 广告服务 | 版权声明 | 加入硅谷动力 | 联系我们 | 建议/投诉 | 网站导航 | 加入收藏

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

京ICP证000088号