2022年数据结构学习线性链式结构总结 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年数据结构学习线性链式结构总结 .pdf》由会员分享,可在线阅读,更多相关《2022年数据结构学习线性链式结构总结 .pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构学习( C+ )线性链式结构总结(代后记)【1】 happycock (原作)转自 CSDN 看到这个标题, 有些人一定松了一口气这小子可算白话完了,当然了,你要是略有惋惜之情,我真是受宠若惊。但不论你怎么想,写到这里只是告一段落,并没有完,后面还有很大一部分呢,比如树、图、查找、排序这么多年了,还是这点东西。 代后记的意思是, 我觉得对前面线性链式结构的总结,对后面的学习有指导意义: 从前面的学习中, 你能得出如何学习数据结构,以及如何正确看待这门课如果你能从重复建设中看到这样做的价值,你才能真正理解这门课的意义。在开始总结前,先整理一下以前的代码,假定你使用的是VC6,你的工程中现
2、在应该有这几个主要文件:Node.h、List.h 、Stack.h、Queue.h、CircList.h 、DblList.h 、Polynomial.h 、Expression.h、Matrix.h ,一个含有main()的 cpp 文件。其他的是一些测试文件和一些应用,比如 Simulation.h 。如果你用的不是VC6,你一定背地里咒骂我多少次了,因为一大堆error和 warning。我当初发布的时候,并没有考虑到不同编译器的差异,我觉得只要光使用标准库(仅仅用了iostream.h 和 stdlib.h ) ,不写怪怪的代码,通用性应该不是问题,但实际上不是这样。 所以,我不得不
3、花一些篇幅介绍如何修改以前的代码,所以,这篇文章就只能是 【1】了;不过,后面有一个计时器类的源码,就算是一点补偿吧。VC6 、BCB6 、Dev-cpp 的编译器的差异这些应该是目前Win32 下最常用的IDE环境了,各自的编译器分别是CL.exe 、BCC32.exe、G+.exe(就是 GNU C+) 。我没装BCB6 ,所以只是拿BCC32 来代替。 VC6时间比较早( 98 年) ,对 C+标准支持不是很完善,例如下面的代码:for (int i = 1; i 10; i+); for (int i = 1; i 10; i+); 按照 C+标准, i 的作用域应该是for 循环内。
4、但是在VC6 中,出了定义i 的 for 循环,仍然有效,所以,这段代码在VC6 中被认为是重复定义。我为了省事,在并列的第二个循环内,把 int 省略了。现在到了BCC32,它在这方面对于C+标准倒是很支持,于是,象我那样的做法,就是第二个i 没定义。让这样的代码同时适应两个编译器的解决办法,要么第2 个循环变量换个名字,要么退回到C 的写法:int i; for (i = 1; i 10; i+); for (i = 1; i 10; i+); VC6 中的重载可以不需要函数类型(默认int) ,顺便不需要返回值。这很好理解,只能是成员函数,并且操作对象是一定的,返回值是什么(和int m
5、ain() 一个道理)?但这合情合理的做法是违反标准的(让人想起了什么),到了 BCC32,人家不干了,非让给个返回值,可以添加return 0;了事,两边都不得罪;或者,定义void operator,一样两边都认可。 VC7 也要求 operator必须有返回值,还是标准的力量大啊。修正如上的问题之后,BCC32 就能编译了,但是还是一大堆waining ,这是我写作的风格导致的。 C+标准说,如果在类体内定义函数(而不是声明原型),那个函数被自动内联;也就是说, 我的那些类的成员函数,编译器都认为我想让他们成为内联函数,但是有些函数是不能内联的,于是编译器就说“你的要求太高了,我办不到”
6、我也没想让你受累啊,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 自找麻烦的编译器。胡弄过去 BCC32 后,再拿Dev-cpp 试试,晕了,上百个error 和 warning。其实这是个连锁反应,首先,在GNU C+ 中, iostream.h 这个头文件被废弃了,强烈建议使用iostream(总觉得象大棒) , 还好 VC6、 BCC32 也认这个。 改了这个, 又来了一个啼笑皆非的warning ,文件尾必须要有一个空
7、行?!我以前为了紧凑,有空行也删掉了,得,听你的,加上。这些都完事之后, Dev-cpp 就通过了,没有warning。这样修改完后,那些代码3 个编译器就都能编译了,看一下编译的exe 文件大小, VC6的最小( Release版) ,BCC32 的大一点, Dev-cpp 的, 大得太可怕了,我不清楚是不是编译器的参数问题,但是GNU C+ 能在 Win32 下使用,都是经过转换的,不知道是不是这个原因。突然有个想法,哪个编译器编译的exe 文件运行的更快?哪个编译器效果更好?首先,要写个计时器, 这方面有人写过文章,我参考了一些人的,做了一个封装, 如下:#ifndef Timer_H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据结构学习线性链式结构总结 2022 数据结构 学习 线性 链式 结构 总结
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内