全部每周作业和视频思考题答案和解析 见 浙江大学 数据结构 思考题+每周练习答案
MOOC上浙江大学的数据结构课程很不错,比较基础,而且通俗易懂,每周习题还都有点挑战性,这里打算将所有的题进行一下汇总。题目分为两个部分,一是课程中给出的思考题,二是每周的算法作业。
对于思考题,除去那些一眼就能看出来答案的或者过于简单的问题,绝大部分题的解法思路都会放上来。对于每周的编程作业,本人将把答案全部给出,并附带思考过程和构建程序的过程。
本系列最大的特点是从设计思路出发,一点一点构建程序,并把遇到的各种坑和障碍全部进行了记录,如果您在编程时遇到相同的错误,尤其是调试了N遍都不明白为什么还会出错的时候,可以从本系列中找到答案。
注意,虽然我给出的程序都是可以直接通过全部测试的,但限于本人能力,不一定是最完美的解决方案,如果想到更好的方法,我还会在程序里对其进行说明,读者可以根据自己的意愿进行修改。里面有不少题目也肯定有更多更优秀的方法,鉴于本人能力有限,很难找到所有解决思路中最好的解决方案。本人采用的解法都是与课程相关的,不会出现奇怪的难懂的解答技巧,所以学习过视频的读者可以很容易读懂。
另外需要注意的是,我在几乎全部代码的末尾都保留了 system("pause"); 函数,因为我发现浙大的这个编译器会自动帮你删除这个函数,所以你不用担心它会超时,带着它在Visual Studio上调试时不会执行完就直接闪退。
2020年4月8日:终于把图的算法题都做完了,真是又累又麻烦。
一、思考题部分
线性结构:(因为习题过于简单随便记录了几个)
树:(按顺序整理的)
图:
排序:
考试:
二、每周作业部分
第一周的编程作业:
Maximum Subsequence Sum 2004年浙江大学计算机专业考研复试真题
第二周的编程作业:
第三周的编程作业:
第四周的编程作业:
树6 Complete Binary Search Tree
第五周编程作业:
第六周编程作业:
图2 Saving James Bond - Easy Version
第七周编程作业:
图5 Saving James Bond - Hard Version
第八周编程作业:
第九周编程作业: