《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明
原文: http://www.cnblogs.com/kangjianwei101/p/5221816.html
《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明
先附上文档归类目录:
课本源码合辑 链接☛☛☛ 《数据结构》课本源码合辑
习题集全解析 链接☛☛☛ 《数据结构题集》习题解析合辑
★相关目录及测试数据下载★
链接☛☛☛ 严蔚敏《数据结构》课本源码及习题解析
博主有话说:
01.自学编程,难免思路阻塞,故我在本博客陆续更新了严蔚敏,吴伟民版《数据结构-C语言版》各章节的课本源码和配套习题集答案解析,目的是为了整理数据结构中的知识点,并与网友交流意见,集思广益,共同进步。(目前已更新完毕,细节待完善)
★注★ 左侧随笔分类下用两个栏目:<课本源码>、<习题解析>来存放本主题文档。
<课本源码>目录下实现了三种数据结构源码:
一:课本中重点描述过的数据结构与算法;
二:课本中提到,但没有详细描述的数据结构;
三:课本中未提到,但在习题集中涉及到的数据结构。
<习题解析>目录下存放了配套习题集中每章的习题解答,但对于算法设计题,要注意其相对路径,因为涉及到了别的文档的引用。
各文档的组织方式参见附录二中的图示,有疑问联系博主。
02.本源码与解析涵盖了《数据结构》课本和习题集两部分,课本和习题集分别以下图书籍为参照(我有左边的纸质版和右边的电子版,貌似内容没区别):
03.所有源码实现均使用C语言,遵循C99标准,使用C-Free 5(出于兼容性原因,win10上更推荐CLion)(内置gcc编译器,编译时,需要在菜单栏,定位到构建-->构建选项-->类别-->C Language,勾选第三个:"ISO C99 plus GNU extensions [-std=gnu99]",即编译选项用-std=gnu99,而不是-std=c89或者-std=c99)测试通过(不要创建工程,如果是在工程里运行,那文件互相引用的方式可能需要改写)。(是的,学习C语言,郑重推荐此编译器(win7),简洁、易用、强大!注意事项参见第6条)
附下载链接:CFree5
04.为了便于引用、查阅,各章内容在计算机中分文件夹存放,其中,《▲课本算法实现》中存放对课本中算法的实现,《▼配套习题解析》存放对题集中习题的解答,各源文件按章、节组织,组织方式见附录二。
★★★05.注意各文档引用.h文件或.c文件时的相对路径。为保证源码中对各.h或.c文档的引用有效,请保持各文档的相对位置固定。
★★★06.对于主文档(含有main函数的文档),#include自定义源码时引入的是.c文件而不是.h文件,其原因是测试用的gcc编译器支持不创建工程的情况下直接编译。如果是在Visual Studio等微软的编译器下做测试,则必须先创建工程,并引入.h文件,而且,对全局变量的定义等可能需要作出修改,变为带有extren的形式。对于使用VC6或Visual Studio,还有其他编译器产生的各种编译问题,请自行百度解决。
★★★07.部分类型定义名称、宏名、函数名和算法步骤与《数据结构》原书略有区别,但算法思想与原书一致,这样“改写”主要是为了易于区分各名称并简化操作。部分文件的测试数据设置为单独的文档而不从控制台录入,目的是为了测试时方便,避免重复录入数据。
★★08.如果你使用的编译器不是CFree,请注意文件编码格式(当然,如果是你自己从头敲代码的话,忽略这一条!)
09.各算法并非100%完善,未考虑所有意外,未做过多输入与输出验证。
10.有的数据结构在创建之前需要初始化,有的创建和初始化合为一体。
11.大多数组0号单元弃用,或用作计数器。
12.留意全局变量和类型定义、宏定义。
13.算法的测试文档中有些看似“多余”的缩进是为了区分不同功能模块,便于浏览。
★★★14.在习题集解析中,不同人可能会对同一个题的理解有差别,所以这里只是表达我个人的想法,不代表其他任何人的看法。
15.所有涉及到的源码都是以图片给出的,目的一是为了防止有同学抄作业,目的二是希望初学的可以自己把代码敲一遍,而不是复制粘贴过去光看不练(事实证明,不自己写一遍,哪怕照着写一遍,永远不会知道自己会犯什么错)。对于测试用的数据文件,会给出下载链接。
★★★16.若对代码有疑问,或者发现有错误,再或者有好的建议、思路,都可以联系博主。
17.绪论中的Scanf.c文件包含一个Scanf函数,用来从文件中读取西文字符。设计这个函数的原因是减少测试工作,避免每次测试时在控制台手动输入数据...…
18.关于IDE,前面说过,学习C语言,从我个人审美角度,在win7上,新手只推荐CFree,配合mingw这个编译工具集,简洁强大又好看。除此之外,还推荐CLion(在win10上同样好用)CLion和CFree使用的编译环境一样,不同的是,这个软件更“智能”,颜值也很高,操作体验也不错,而且开发C++也毫无压力,不过对电脑配置可能要求高一点点。如果你偏爱微软,也可以去使用他们家的VS,除了体积庞大操作复杂外,也是个非常强大的IDE,开发大型项目必备,但是初学者就算了吧,不太建议...
19.关于C/C++的编译器,粗略分为微软和GNU吧,微软的一般集成在自己的IDE里,GNU的有gcc(C语言)和g++(C++)等,这里的CFree里使用的mingw就是gcc和g++等的一个集合,如果想使用最新版,可以自行去下载配置。
20.★★★★如果没有认真学过一门编程语言,请不要尝试这门课程,或者说,即使想学,也不要从这本书开始。这本书的定位应该是假设你已经熟悉某一种语言,不限于C语言,也可以是C++、Java、Python等。当然,懂得C/C++最好了,因为这本书的示例代码就是C/C++的混编么(绝大部分是C)。
21.待续…
附一:《数据结构》课本源码《▲课本算法实现》目录下的文件组织方式,《▼配套习题解析》部分的组织方式与此类似,只不过每一章内部存放的是习题解析和测试文档。
附二:源码目录组织(注意保持各文件相对位置固定):