hi,小慕
数据结构
第18次开课
开课时间: 2025年02月17日 ~ 2025年07月06日
学时安排: 3小时每周
进行至第7周,共20周 已有 957 人参加
立即参加
课程详情
课程评价(239)
spContent=“数据结构”是计算机科学的关键,对于构建高效的算法起着决定性的作用。作为程序设计的重要理论基础,它不仅是计算机专业的核心课程,而且在计算机相关应用领域中有着广泛的应用。本课程将数据结构的基本概念和常用算法紧密结合,配以完整的C 语言程序详解,并提供了丰富的测验习题和讨论。
“数据结构”是计算机科学的关键,对于构建高效的算法起着决定性的作用。作为程序设计的重要理论基础,它不仅是计算机专业的核心课程,而且在计算机相关应用领域中有着广泛的应用。本课程将数据结构的基本概念和常用算法紧密结合,配以完整的C 语言程序详解,并提供了丰富的测验习题和讨论。
—— 课程团队
课程概述

 通过本课程学习,使学生掌握计算机科学中组织、表示和处理数据的基本方法,培养学生运用数据结构和算法知识解决应用问题的能力,提高算法设计和程序设计水平,为《数字图像处理与图像通信》、《网络技术与应用》和《数据库技术与应用》等很多与IT相关的后续课程学习,也为“大信息”背景下非数值应用软件的开发打下良好的理论基础。本课程的学习,有助于IT相关专业的学生解决各自专业中软件设计的问题。

 本课程的教学内容包括线性表、栈和队列、数组、树和二叉树、集合、搜索树、散列表、图和文件等常见的数据结构,讨论各种典型的搜索和内、外排序算法。此外,还介绍递归算法、各种典型的搜索算法和内、外排序等算法,并给出算法分析的基本方法。

 希望同学们在经过本课程的学习,能够做到:从数据的逻辑结构、存储结构和运算三个方面理解并掌握线性表、栈、队列、数组、树、图和文件等常用的数据结构;了解在各种常用的数据结构上实现的排序和查找运算;对算法的时间和空间复杂性有一定的分析能力;针对常见的应用问题,能选择合适的数据结构及设计有效的算法解决问题。

授课目标

 本课程主要研究各种数据的抽象表示、实现方法和算法的设计过程,是计算机软件设计的重要理论和实践基础课程。

 课程目标1:使学生掌握数据结构的基本概念,熟悉合理组织数据的基本方法,培养学生运用计算思维分析计算机及应用领域的相关工程问题的能力,为本专业后续课程学习及进一步的软件开发打下良好的理论基础。

 课程目标2:能够运用计算思维分析问题和解决问题,针对具体问题,分析数据元素的组成和逻辑关系,设计灵活高效的数据存储结构,实现所需的运算, 针对计算机及应用领域复杂工程问题设计可行的研究方案。

 课程目标3:能综合运用数据结构的基本理论和设计方法,研究针对计算机及应用领域复杂工程问题自主设计数据结构,并能对研究方案的可行性进行论证。

课程大纲
绪论 (视频总时长30',共计3个)
课时目标:了解课程的学习目的和内容,深刻理解有关数据结构的基本概念,理解将抽象数据类型应用于数据结构研究的方法,掌握算法分析的基本方法。
1.1 数据结构的起源和基本概念-(一)
1.2 数据结构的起源和基本概念-(二)
1.3 算法和算法分析
线性表(视频总时长63'3'',共计9个)
课时目标:深刻理解线性表抽象数据类型以及线性表的顺序和链接表示方法,熟练掌握线性表中基本运算的实现算法,学会分析各算法的性能,以及学会使用线性表求解一元多项式的算术运算。
2.1 线性表的定义
2.2 线性表的顺序存储
2.3 线性表的链接存储
2.4 线性表的应用
堆栈和队列(视频总时长70'54'',共计9个)
课时目标:深刻理解栈和队列抽象数据类型以及它们的顺序和链接表示方法,熟练掌握栈和队列数据结构中基本运算的实现算法,掌握如何借助栈进行后缀表达式计算、理解其实现方法,了解递归的基本概念及递归调用的方法。
3.1 堆栈
3.2 队列
3.3 表达式
3.4 递归
数组(视频总时长64'46'',共计8个)
课时目标:理解数组抽象数据类型,掌握一般数组的顺序表示方法以及对称矩阵的存储方式,理解稀疏矩阵的含义,掌握稀疏矩阵的三元组表示方法,了解利用三元组表示法的矩阵快速转置算法。
4.1 数组的基本概念
4.2 特殊矩阵
4.3 稀疏矩阵
树和二叉树(视频总时长220'10'',共计22个)
课时目标:了解树和森林的基本概念及主要存储方式,深刻理解二叉树的定义、性质和二叉链表存储结构,熟练掌握二叉树遍历的三种递归算法,学会利用二叉树遍历求解其它相关问题,掌握森林与二叉树的转换方法,了解堆和优先权队列数据结构,掌握建堆算法,了解在优先权队列中插入、删除元素的方法,理解哈夫曼树构造方法,学会哈夫曼编码和译码的方法。
5.1 树
5.2 二叉树
5.3 二叉树的遍历
5.4 树和森林
5.5 堆和优先权队列
5.6 哈夫曼树及哈夫曼编码
集合和搜索(视频总时长37'31'',共计4个)
课时目标:理解集合的基本概念,熟练掌握在集合中相关的搜索算法,具体包括有序表的顺序搜索、对半搜索的递归和非递归算法,了解使用二叉判定树进行二分搜索平均时间复杂度的方法。
6.1 集合的抽象数据类型
6.2 顺序搜索
6.3 二分搜索
6.4 平均搜索长度分析
搜索树(视频总时长81'41'',共计11个)
课时目标:深刻理解二叉搜索树的定义和性质,熟练掌握二叉搜索树中搜索、插入和删除元素的算法,了解二叉平衡树定义以及在二叉平衡树中插入元素的平衡旋转方法,掌握B-树的定义以及在B-树中插入和删除元素的方法。
7.1 二叉搜索树
7.2 二叉平衡树
7.3 B-树
散列表(视频总时长56'45'',共计7个)
课时目标:掌握散列表的概念,了解常见的散列函数,掌握解决冲突的拉链法和开地址法。
8.1 散列技术简介
8.2 常见散列函数
8.3 冲突处理技术
图(视频总时长111'36'',共计14个)
课时目标:深刻理解图的基本概念,熟练掌握图的邻接矩阵和邻接表存储结构,理解图中一些常见的算法:图的深度优先和广度优先遍历算法,拓扑排序和关键路径算法,求最小代价生成树的普里姆和克鲁斯卡尔算法,以及求单源最短路径。
9.1 图的基本概念
9.2 图的存储结构
9.3 图的遍历
9.4 拓扑排序
9.5 关键路径
9.6 最小代价生成树
9.7 单源最短路径
排序(视频总时长68'16'',共计9个)
课时目标:熟练掌握各种常见的内排序算法,学会分析和比较各种内排序算法的时间和空间复杂度,理解这些算法的异同,学会针对实际排序问题,选择合适的排序算法。了解外排序的基本概念和基本方法。
10.1 排序的基本概念
10.2 简单选择排序
10.3 直接插入排序
10.4 冒泡排序
10.5 快速排序
10.6 合并排序
10.7 堆排序
展开全部
预备知识

高级语言程序设计(C语言)

高等数学 

参考资料

1.教材

《数据结构(C语言)慕课版(第2版)》(江苏省高等学校重点教材,王海艳等,人民邮电出版社,2019。教材封面如下图所示:

如果您需要购买,可以扫描下面二维码访问出版社网站购买。

2.主要参考书

[1]《数据结构与算法分析:C语言描述(原书第2版)》,()Mark Allen Weiss 著, 冯舜玺 译,机械工业出版社,2004年;

[2] 《计算机科学丛书:C程序设计语言(第2·新版)》,() Dennis M.Ritchie(丹尼斯·里奇) 著,徐宝文,李志 译,机械工业出版社,2004年;

[3] 《数据结构与算法:C++语言描述》,陈慧南 著,高等教育出版社,2005年;

[4] 《清华大学计算机系列教材:数据结构(C语言版)》,严蔚敏、吴伟民 著,清华大学出版社,2011年;

[5] 《大话数据结构》,程杰 著,清华大学出版社,2011年。

南京邮电大学
6 位授课老师
王海艳

王海艳

教授

肖甫

肖甫

教授

朱洁

朱洁

副教授

推荐课程

数据结构与算法期末冲刺-5小时突击数据结构与算法

小谢老师01

25547人参加

猴博士C语言不挂科-4小时学完C语言

猴博士爱讲课

310612人参加

离散数学期末冲刺/考研-10小时突击离散数学

弓长老师

15093人参加

期末高分-8小时C语言精讲【新版】

小谢老师01

8867人参加
下载
下载

下载App