hi,小慕
数据结构
第4次开课
开课时间: 2020年09月02日 ~ 2021年01月15日
学时安排: 3-5小时每周
当前开课已结束 已有 873 人参加
立即自学
往期不提供结课证书,想参加下学期课程, 点击这里预约>>
课程详情
课程评价(5)
spContent=《数据结构》是程序设计的进阶课程,程序设计的高手之路从“数据结构”开始! 这里,你可以一窥唐纳德·克努特笔下表、树、图的奥秘! 这里,你可以沿袭世界算法大师们的思维,领略算法的美妙! 这里,你可以跟随课程团队,一步步探索应用问题的解决方法! 这里,是你通往程序设计高手的必经之路!
《数据结构》是程序设计的进阶课程,程序设计的高手之路从“数据结构”开始! 这里,你可以一窥唐纳德·克努特笔下表、树、图的奥秘! 这里,你可以沿袭世界算法大师们的思维,领略算法的美妙! 这里,你可以跟随课程团队,一步步探索应用问题的解决方法! 这里,是你通往程序设计高手的必经之路!
—— 课程团队
课程概述

1.课程简短介绍  

大数据时代呼唤计算机科学与技术,非数值计算成为计算机科学的关键,数据的组织和存储奠定非数值计算信息处理的基础,算法分析与设计闪耀计算思维的光辉!数据结构与算法是计算机学科的两大基石,程序设计的高手之路从“数据结构”出发!

2.课程概述

  《数据结构》注重非数值计算问题的研究,主要讲授基本数据结构的知识与应用,包括线性表、树、图等基本结构的特点、存储与运算,以及常用算法的设计与分析等内容。数据结构是一门理论与实践紧密结合的课程,具有抽象性和应用性等特征,对于培养学生软件设计能力、系统思维能力、工程应用能力具有重要作用,对后续计算机领域的其它课程的学习,以及对从事信息工程的软件开发,都是重要而必备的基础。

3.课程特色

针对新工科建设要求,根据课程特点,以学习者为中心,提高教学效果,摒弃以往照本宣科、纯理论讲授。该课程贯彻CDIO教学理念,全程采用项目式、问题驱动教学方法,提高知识内化效率,着力培养学生的工程应用能力和自主学习、团队协作能力。选择经典实际应用项目贯穿课程所有章节,如:岳阳楼公园导游程序手机通讯录设计、银行排队叫号问题、手机计算器应用等拓展知识维度。本课程将思政元素隐性渗透于在线教学的全过程,实现立德树人。

教学中采用应用项目结合原理,以“项目引入、提出问题-基础理论-解决方案-编程实现”为主线进行讲解,使抽象晦涩的专业理论通俗易懂。

  最后,我们还要运用本课程知识,实现一些生活与计算机中的小型应用项目,通过实战达到融会贯通。

4. 教学环节 

本课程包含视频授课、随堂测试讨论、教材阅读师生互动以及期末考试等教学环节。

学习者观看本课程提供的授课视频进行课堂学习,掌握基础知识,并完成随堂测试题以及参与课堂讨论;

完成指定的上机实验题,巩固和充实理论课堂知识;

学习者和教师互动,学习者提出问题,教师在线解答释疑,教师在线检查学习者完成学业的情况;

通过阅读本课程指定教材(《数据结构教程》(第5版).李春葆主编.清华大学出版社.2017.05),预习和复习视频授课内容。

授课目标

计算机、大数据、软件、物联网、电信、信工、通信、网络、数学、物电等专业的学生;

对程序设计感兴趣的学生、社会人士;

想成为高段位程序设计达人的编程爱好者!



课程大纲

第1讲 绪论   (吴岳芬老师)

1.1 数据结构概述

  1.1.1 数据结构的基本概念

 1.1.2 抽象数据类型

1.2 算法概述

 1.2.1 算法的定义及性能分析(上)

1.2.2 算法的定义及性能分析(下)


第2讲 线性表(上)-顺序表   (吴岳芬老师

2.1 项目引入-手机通讯录系统的设计与实现

2.2 理论基础-线性表及顺序存储 

2.3 解决方案

2.3.1 通讯录顺序表的定义及初始化

2.3.2 通讯录顺序表的插入操作

2.3.3 通讯录顺序表的删除操作

2.3.4 通讯录顺序表的其他操作

2.4 编程实现-手机通讯录顺序结构及相关操作的设计与实现  

 

第3讲 线性表(下)-单链表   (吴岳芬老师

3.1 项目引入-手机通讯录系统的设计与实现

3.2 理论基础-单链表的基本概念  

3.3 解决方案

3.3.1 头插法建通讯录单链表

3.3.2 尾插法建通讯录单链表

3.3.3 通讯录单链表的插入及删除操作

3.3.4 通讯录单链表的其他操作

2.3.5 双向链表

2.3.6 循环链表

3.4 编程实现-手机通讯录链式结构及相关操作的设计与实现  

 

第4讲 栈   (吴岳芬老师

4.1 项目引入-手机计算器的简单表达式求值问题  

4.2 理论基础

4.2.1 栈的基本概念

4.2.2 栈的顺序存储及操作

4.2.3 栈的链式存储及操作

4.2.4 栈与递归

4.3 解决方案 

4.3.1 简单表达式求值的过程分析

4.3.2 简单表达式求值的算法分析

4.4 编程实现-手机计算器的简单表达式求值的设计与实现    

 

第5讲 队列-循环队列   (吴岳芬老师

5.1 项目引入-银行排队叫号问题  

5.2 理论基础 

5.2.1 队列的基本概念

5.2.2 队列的顺序存储

5.3 解决方案-基于循环队列的银行排队叫号过程的处理

5.4 编程实现-基于循环队列的银行排队叫号问题的设计与实现    

 

第6讲 队列-链队列    (吴岳芬老师

6.1 项目引入-银行排队叫号问题   

6.2 理论基础-队列的链式存储

6.3 解决方案-基于链队列的银行排队叫号过程的处理    

6.4 编程实现-基于链队列的银行排队叫号问题的设计与实现    

 

第7讲 串、数组和广义表   (吴岳芬老师

7.1 项目引入-文本处理问题研究

7.2 理论基础

7.2.1 数组与特殊矩阵

7.2.2 稀疏矩阵

7.2.3 广义表

7.2.4 串的基本概念与存储

7.3 解决方案

7.3.1 串的模式匹配-BF算法

7.3.2 串的模式匹配-KMP算法演示

7.3.3 串的模式匹配-KMP算法分析

7.4 编程实现-基于顺序串的文本处理问题的设计与实现

 

第8讲 树和二叉树   (吴岳芬老师

8.1 项目引入-哈夫曼编码       

8.2 理论基础 

8.2.1 树的基本概念        

8.2.2 树的存储与遍历      

8.2.3 二叉树的基本概念    

8.2.4 二叉树的基本性质    

8.2.5 二叉树的存储结构    

8.2.6 二叉树的先序遍历    

8.2.7 二叉树的中序遍历       

8.2.8 二叉树的后序层次遍历   

8.2.9 树与二叉树的转换       

8.2.10 二叉树的基本运算及实现(上)   

8.2.11 二叉树的基本运算及实现(中)  

8.2.12 二叉树的基本运算及实现(下)   

8.2.13 由遍历序列构造二叉树     

8.2.14 哈夫曼树      

8.3 解决方案 

8.3.1 哈夫曼编码的案例分析        

8.3.2 构造哈夫曼树的算法分析(上)

8.3.3 构造哈夫曼树的算法分析(下)

8.3.4 哈夫曼编码算法分析           

8.4 编程实现-哈夫曼编码和译码的设计与实现  

 

第9讲 图-图的定义及存储   (吴岳芬老师

9.1 项目引入-公园导游系统与景点介绍问题

9.2 理论基础 

9.2.1 图的基本概念

9.2.2 图的邻接矩阵存储  

9.2.3 图的邻接表存储  

9.3 解决方案-基于邻接矩阵的公园地图存储

9.4 编程实现-公园导览图的存储与实现

 

第10讲 图-图的遍历   (吴岳芬老师

10.1 项目引入-公园导游系统与游览线路问题

10.2 理论基础 

10.2.1 图的深度优先遍历(上)

10.2.1 图的深度优先遍历()

10.2.2 图的广度优先遍历

10.3 解决方案-基于深度优先遍历的公园图遍历     

10.4 编程实现-公园导游系统游览线路的规划与实现    

 

第11讲 图-最短路径   (吴岳芬老师

11.1 项目引入-公园导游系统与景点间最短路径问题

11.2 理论基础

11.2.1 最短路径的概念

11.2.2 最短路径-狄杰斯特拉算法

11.2.3 最短路径-弗洛伊德算法  

11.3 解决方案-基于狄杰斯特拉算法的公园两景点间的最短路径

11.4 编程实现-公园两景点之间的最短路径的计算与实现  

 

第12讲 图-最小生成树   (吴岳芬老师

12.1 项目引入-公园导游系统与管道修建问题

12.2 理论基础

12.2.1 最小生成树的概念

12.2.2 最小生成树-普里姆算法

12.2.3 最小生成树-克鲁斯卡尔算法

12.3 解决方案-基于普里姆算法的公园管道修建方案

12.4 编程实现-公园管道修建方案的设计与实现  

 

第13讲 查找   (吴岳芬、潘理老师

13.1 项目引入-手机通讯录的检索系统

13.2 理论基础 

13.2.1 查找的基本概念

13.2.2 线性表查找-二分查找

13.2.3 线性表查找-分块查找

13.2.4 树表查找-二叉查找树

13.2.5 树表查找-平衡二叉树

13.2.6 哈希表查找-哈希表的基本概念

13.2.7 哈希表查找-构造哈希函数

13.2.8 哈希表查找-解决哈希冲突

13.3 解决方案 

13.3.1 手机通讯录的查找(上)

13.3.2 手机通讯录的查找(下)

13.4 编程实现-手机通讯录检索程序的设计与实现

 

第14讲 内排序    (李文彬老师)     

14.1 项目引入-手机通讯录的排序问题

14.2 理论基础 

14.2.1 内排序的基本概念

14.2.2 交换类排序

14.2.3 插入类排序

14.2.4 选择类排序

14.2.5 归并排序

14.2.6 基数排序

14.3 解决方案-手机通讯录的排序操作

14.4 编程实现-手机通讯录的排序设计与实现


展开全部
预备知识

学习者具备以下几个方面的基础知识:

 1.熟练掌握C语言/C++

 2.熟练运用一种编程环境(例如,VC/Dev C)。


参考资料

【教材】:

《数据结构教程(第5版)》,李春葆主编,清华大学出版社,2017年5月.

《数据结构教程上机实验指导(第5版)》,李春葆主编,清华大学出版社,2017年8月.

课程练习网站

  练测评一体化平台:本课程的编程练习题在该平台布置。

【参考书】:

1.《数据结构》(C语言版),严蔚敏、吴伟民编著,清华大学出版社,2016年1月.

2.《数据结构题集》,严蔚敏、吴伟民、米宁编著,清华大学出版社,2015年11月.

3. 《数据结构与算法分析-C语言描述》,Mark Allen Weiss著,机械工业出版社,2018年8月.

4.《算法导论》,Thomas H.Cormen Charles E.Leiserson、Ronald L.Rivest Clifford Stein著,殷建平等译,机械工业出版社,2018年8月.

5.《C Primer Plus(第6版)中文版》,Stephen Prata著,人民邮电出版社,2016年4月.

6.D. E.Knuth著,苏运霖译,《计算机程序设计艺术,第1卷基本算法》,国防工业出版社,2002年. 

7.张铭等编著.数据结构与算法.高等教育出版社, 20086月.

8.《数据结构(第2版)》,陈越主编高等教育出版社2018年12.


湖南理工学院
1 位授课老师
吴岳芬

吴岳芬

副教授

推荐课程

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

小谢老师01

25705人参加

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

猴博士爱讲课

312681人参加

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

弓长老师

15240人参加

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

小谢老师01

8961人参加
下载
下载

下载App