数据结构课程是面向计算机科学与技术、信息安全、物联网工程专业的本科学生开设的专业核心必修课程。这是一门与编程和算法思想相关的课程,只要您对程序设计感兴趣,想掌握基本的算法设计思想、提升编程水平,都可以学习本课程。 通过本课程的学习,使学生熟练地掌握在程序设计应用中,特别是在软件系统的非数值计算类应用方面,常用数据模型以及实现方法;熟练建模的基本方法以及在计算机科学与工程中的基本应用;在高级语言程序设计课程的学习基础之上,进一步提高程序设计的综合能力;在理论和方法上,奠定后续专业课程学习的基础。总之,学好数据结构就对了。
数据结构就相当于:要拧螺母,肯定用扳手这个“数据结构”,当然用钳子也行,只不过也没那么好用。学习数据结构,就是为了了解以后在IT行业里搬砖需要用到什么工具,这些工具有什么利弊,应用于什么场景。以后用的过程中,你会发现这些基础的“工具”也存在着一些缺陷,你不满足于此工具,此时,你就开始自己在这些数据结构的基础上加以改造,这就叫做自定义数据结构。而且,你以后还会造出很多其他应用于实际场景的数据结构。
本课程以清华大学严蔚敏教授编著的《数据结构(C语言版)》为教材,以章节划分知识点,每个知识点录制10分钟左右的视频,每个章节知识点的列表可查看课程大纲。每章都有以考察知识点为目标的单元测试,以巩固、提高对基本知识的理解,并提供相应章节的PPT素材,供同学们深入学习。课程学习以在线方式进行,教学视频和学习资源以及每个章节的练习和测试有时间限制。请随时关注公告栏,老师会在这里发布上线通知、作业时间等进度提示,一般每周一推送下一讲。每节后有测验练习,每讲最后有测试作业,请注意它们下面的提交截止时间,在提交截止时间前完成练习和作业。希望通过本课程,为学生学习后续课程打下扎实的基础。
本课程以培养学生的数据抽象能力和复杂程序设计的能力为总目标。通过本课程的学习,学生可以学会分析、研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的运算,并初步掌握算法的时间分析和空间分析技巧;此外,学习本课程的过程也是进行复杂程序设计的训练过程,要求学生编写的程序结构清楚和正确易读,符合软件工程的规范。
能力结构目标
1)掌握合理组织数据的基本方法,高效处理数据的基本算法,常用的经典算法,通用的程序设计技术,以及面对实际问题时选择恰当数据结构并设计高校算法的能力。
2)培养学生用计算思维分析问题的能力,提高学生上机解决较大规模实际问题的能力。
3)通过对本课程算法设计和上机实践的训练,培养学生的数据抽象能力和复杂程序设计的能力。
知识结构目标
1)掌握数据结构的基本概念和术语,理解算法的描述与算法分析,了解数据结构与算法的密切关系。
2)熟悉各种基本数据结构及其操作,学会根据实际问题要求来选择数据结构。
3)掌握设计算法的步骤和算法分析方法。
4)掌握数据结构在排序和查找等常用算法中的应用。
MOOC课程的成绩=MOOC成绩占30%+测试成绩10%+作业20%+作业互评+考试成绩占40%。
单元作业完成情况
单元测试完成情况
考试完成情况
视频学习完成情况
作业互评完成情况
讨论区互动情况
具体的分值分配设置请查看“题型设置”页面和“总分及成绩设置”页面。
请同学们了解以上课程成绩评定标准,注重平时的过程学习,以免影响课程成绩评定。
本课程采用百分制 ,60分及以上为合格,80分及以上为优秀。
第一章 绪论
第一章知识巩固练习
算法和算法评价
数据结构的基本概念
实践:算法
第二章 线性表
第二章 线性表习题集选择题第第48题补充
线性表的链式表示和知识巩固答案订正
第二章教材电子版
实验:线性表的应用
第二章 线性表习题集答案
线性表的类型定义知识巩固
线性表的顺序表示和实现知识巩固
线性表的链式表示知识巩固
第二章 线性表习题集-选择部分
第二章 线性表习题集—应用及算法设计部分
实验:线性表的应用
第三章 栈和队列
栈和队列教材电子版
补充:栈的应用-表达式求值与逆波兰式
实验二 栈和队列的应用
栈结构及知识巩固
实验:栈的应用-进制转换问题
队列结构及知识巩固
实验:队列的应用-舞伴配对问题
第三章 栈和队列习题集(选择题部分)
第三章 栈和队列习题集(应用题部分)
第四章 串、数组和广义表
实验 串的模式匹配算法及应用
数组知识巩固
串知识巩固
串、数组和广义表综合练习题集-选择题
串、数组和广义表综合练习题集-应用题
第五章 树和二叉树
二叉树的性质知识巩固补充
二叉树的遍历和线索二叉树知识巩固补充
树和二叉树知识导图
二叉树的性质知识巩固
二叉树的遍历和线索二叉树知识巩固
树及二叉树的应用知识巩固
第五章 树和二叉树单元练习题-选择题
第五章 树和二叉树单元练习题-应用题
实验:树和二叉树的应用
第六章 图
图结构知识导图
图的遍历知识巩固第2题订正
图的存储结构理解练习
图的定义及存储知识巩固
图的遍历知识巩固
第六章图习题集-选择题部分
第六章图习题集-应用题部分
实验 图的应用
图的应用知识巩固
第七章 查找
第七章知识框架
顺序查找和折半查找
二叉排序树和二叉平衡树
第七章查找知识巩固-选择
第七章查找知识巩固-应用题
散列表查找
第八章 排序
第八章知识框架
排序方法综合练习一
排序方法综合练习二
学过一门编程语言,具有一定编程基础,即可理解主要内容,因为数据结构本质上是不依赖于编程语言的,且编程练 习平台可以接受二十余种语言代码的提交。但由于算法描述多用类似C语言的伪码,且“小白系列”仅讲解C语言的算法实现,所以如果学过C语言会更容易接受。
如果还对计算机处理离散结构的基本理论和方法有较为系统的理解(即预修“离散数学”),则对更扎实地掌握本课程内容有很大帮助,但并不是必须的。
严蔚敏等,《数据结构(C语言版)(第2版)》,清华大学出版社,2015.2
耿国华等,《数据结构-C语言描述(第2版)》,高等教育出版社,2021.6
1. 请记住自己的账号和密码,如果忘记密码。处理起来比较麻烦,切记切记。
2. 请及时参加线上学习并高质量提交作业。