• 《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明


     《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明

    先附上文档归类目录:

    课本源码合辑  链接☛☛☛ 《数据结构》课本源码合辑

    习题集全解析  链接☛☛☛ 《数据结构题集》习题解析合辑

     

    ★教材及习题源码下载★

        链接☛☛☛  严蔚敏《数据结构》课本与习题源码(GitHub仓库)

      严蔚敏《数据结构》课本与习题源码

     欢迎Star项目,如有疑问,请在Issues反馈。

     

    博主有话说:

    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.待续…

    附一:《数据结构》课本源码《▲课本算法实现》目录下的文件组织方式,《▼配套习题解析》部分的组织方式与此类似,只不过每一章内部存放的是习题解析和测试文档。

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

  • 相关阅读:
    pyinstaller模块
    使用reduce方法数组去重
    Linux的关机与重启命令
    splice和slice的区别
    发现splice的新大陆
    text-decoration和outline
    前端中关于堆和栈的那些事
    git
    前端代码规范
    弹性布局在项目中的使用示例
  • 原文地址:https://www.cnblogs.com/kangjianwei101/p/5221816.html
Copyright © 2020-2023  润新知