《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明
《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明
先附上文档归类目录:
课本源码合辑 链接☛☛☛ 《数据结构》课本源码合辑
习题集全解析 链接☛☛☛ 《数据结构题集》习题解析合辑
★教材及习题源码下载★
链接☛☛☛ 严蔚敏《数据结构》课本与习题源码(GitHub仓库)

博主有话说:
01.自学编程,难免思路阻塞,故我在本博客陆续更新了严蔚敏,吴伟民版《数据结构-C语言版》各章节的课本源码和配套习题集答案解析,目的是为了整理数据结构中的知识点,并与网友交流意见,集思广益,共同进步。(目前已更新完毕,细节待完善)
★注★ 左侧随笔分类下用两个栏目:<课本源码>、<习题解析>来存放本主题文档。
<课本源码>目录下实现了三种数据结构源码:
一:课本中重点描述过的数据结构与算法;
二:课本中提到,但没有详细描述的数据结构;
三:课本中未提到,但在习题集中涉及到的数据结构。
<习题解析>目录下存放了配套习题集中每章的习题解答,但对于算法设计题,要注意其相对路径,因为涉及到了别的文档的引用。
各文档的组织方式参见附录二中的图示,有疑问联系博主。
02.本源码与解析涵盖了《数据结构》课本和习题集两部分,课本和习题集分别以下图书籍为参照(我有左边的纸质版和右边的电子版,貌似内容没区别):
03.所有源码实现均使用C语言,遵循C99标准,使用C-Free 5(C-Free置gcc编译器,编译时,需要在菜单栏,定位到构建-->构建选项-->类别-->C Language,勾选第三个:"ISO C99 plus GNU extensions [-std=gnu99]",即编译选项用-std=gnu99,而不是-std=c89或者-std=c99)测试通过(不要在CFree里创建工程,如果确实想在工程里运行,那文件互相引用的方式需要改写)。(是的,初学C语言,郑重推荐CFree这个小巧的IDE(win7),简洁、易用、强大!出于兼容性原因,win10上更推荐CLion。注意事项参见第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.所有教材源码已上传到Github,仅供参考,望大家勿抄作业。
★★★16.若对代码有疑问,或者发现有错误,再或者有好的建议、思路,都可以联系博主。
17.绪论中的Scanf.c文件包含一个Scanf函数,用来从文件中读取西文字符。设计这个函数的原因是减少测试工作,避免每次测试时在控制台手动输入数据...…
18.关于IDE,前面说过,学习C语言,从我个人审美角度,在win7上,新手只推荐CFree,配合mingw这个编译工具集,简洁强大又好看。除此之外,还推荐CLion(在win10上同样好用)CLion和CFree使用的编译环境一样,不同的是,这个软件更“智能”,颜值也很高,操作体验也不错,而且开发C++也毫无压力,不过对电脑配置可能要求高一点点。如果你偏爱微软,也可以去使用他们家的VS除了体积庞大操作复杂外,也是个非常强悍的IDE,开发大型项目必备,但是初学者就算了吧,不太建议...当然,现在微软有了轻量级的编辑器VS Code,但这个工具不带编译功能,需要自己配置工具链,同样不推荐初学者使用...
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.待续…
附一:《数据结构》课本源码《▲课本算法实现》目录下的文件组织方式,《▼配套习题解析》部分的组织方式与此类似,只不过每一章内部存放的是习题解析和测试文档。

附二:源码目录组织(注意保持各文件相对位置固定):

《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明的更多相关文章
- 9-11-Trie树/字典树/前缀树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第9章 查找 - Trie树/字典树/前缀树(键树) ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版>(严蔚 ...
- 9-9-B+树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第9章 查找 - B+树 ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题 ...
- 9-8-B树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第9章 查找 - B树 ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集 ...
- 7-6-有向图强连通分量的Kosaraju算法-图-第7章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第7章 图 - 有向图强连通分量的Kosaraju算法 ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版>(严 ...
- 6-11-N皇后问题-树和二叉树-第6章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第6章 树和二叉树 - N皇后问题 ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本 ...
- 6-9-哈夫曼树(HuffmanTree)-树和二叉树-第6章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第6章 树和二叉树 - 哈夫曼树(HuffmanTree) ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版> ...
- 4-4-串的KMP匹配算法-串-第4章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第4章 串 - KMP匹配算法 ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码 ...
- 3-6-汉诺塔(Hanoi Tower)问题-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第3章 栈和队列 - 汉诺塔(Hanoi Tower)问题 ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版> ...
- 2-7-集合运算(A-B)∪(B-A)-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第2章 线性表 - 集合运算(A-B)∪(B-A) ——<数据结构>-严蔚敏.吴伟民版 ★有疑问先阅读★ 源码使用说明 链接☛☛☛ <数据结构-C语言 ...
随机推荐
- Alpha(1/10)
鐵鍋燉腯鱻 项目:小鱼记账 团队成员 项目燃尽图 冲刺情况描述 站立式会议照片 各成员情况 团队成员 学号 姓名 git地址 博客地址 031602240 许郁杨 (组长) https://githu ...
- CodeForces - 1016D 补零思想
题目连接: https://vjudge.net/problem/1753263/origin 其实这道题跟行列式里的分块发有点类似,但也是类似罢了. 主要的思想是每一行,每一列的第一行(或者最后一行 ...
- centos6安装openresty
1.安装依赖库 yum install readline-devel pcre-devel openssl-devel gcc 2.下载openresty wget --no-check-certif ...
- Java笔记(十)堆与优先级队列
优先级队列 一.PriorityQueue PriorityQueue是优先级队列,它实现了Queue接口,它的队列长度 没有限制,与一般队列的区别是,它有优先级概念,每个元素都有优先 级,队头的元素 ...
- 2190 ACM 数学概率论的乘法和加法原则
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2190 思路:明显我们要寻找 边长为n和边长为n-1,n-2,n-3·····的规律,这样得出一个递推公式就 ...
- 基于socket构造c/s 架构软件
1.socket作用 socket层介于应用层和传输层之间,它起着连接应用层和传输层的功能,同时它能连接应用层和网络层. socket把复杂的tcp/ip协议隐藏在socket接口后面,对用户来说,一 ...
- sqlmap简单使用
就以实验吧上那个简单的sql注入题为例吧,不过那道题确实经典,把sqlmap的整个使用过程都展现了一遍,先奉上那道题的地址:http://ctf5.shiyanbar.com/web/index_3. ...
- TOML简介 (转) TOML的由来
TOML的由来 配置文件的使用由来已久,从.ini.XML.JSON.YAML再到TOML,语言的表达能力越来越强,同时书写便捷性也在不断提升. TOML是前GitHub CEO, Tom Prest ...
- unity加载ab后,场景shader不起效问题(物件表现黑色)
需要把unity自带的shader,加入到默认列表
- CentOS7 yum 安装与配置MySQL5.7
安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:https://dev.mysql.com/downloads/rep ...