hi,小慕
数据结构
第3次开课
开课时间: 2020年09月07日 ~ 2021年01月09日
学时安排: 4
当前开课已结束 已有 2072 人参加
立即自学
往期不提供结课证书,想参加下学期课程, 点击这里预约>>
课程详情
课程评价(384)
spContent=《数据结构》是软件技术专业学生职业发展中最重要的、用以培养学生编程逻辑思维能力、影响学生可持续发展的专业基础课。课程用来自生活中的典型任务创设学习情境,趣味引导,按照“提出问题+分析问题+解决问题”主线组织教学内容,用Java或C#描述,解决了数据结构传统教学抽象难懂、教用脱节的问题。
《数据结构》是软件技术专业学生职业发展中最重要的、用以培养学生编程逻辑思维能力、影响学生可持续发展的专业基础课。课程用来自生活中的典型任务创设学习情境,趣味引导,按照“提出问题+分析问题+解决问题”主线组织教学内容,用Java或C#描述,解决了数据结构传统教学抽象难懂、教用脱节的问题。
—— 课程团队
课程概述

《数据结构》课程是软件技术专业的一门必修的专业基础课。这门课程的主要特点是实践性很强,不仅要学习基本理论知识,更要注重上机实践,通过上机实践验证算法的正确性,掌握和巩固所学理论知识。设立本门课程的目的是通过学习,使学生学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并初步了解对算法的时间分析和空间分析技术。另一方面,通过对本课程算法设计和上机实践的训练,还应培养学生的数据抽象能力和程序设计的能力,为后续课程,特别是软件课程打下坚实的知识基础。

数据结构的应用水平是区分软件开发、设计人员水平高低的重要标志之一,缺乏数据结构和算法的深厚功底,很难设计出高水平的具有专业水准的应用程序,因此学生对这门课程知识点的掌握、应用和拓展,将对毕业后编程能力的发展有着直接的影响;世界上公认的规模最大、水平最高的国际大学生程序设计竞赛ACM竞赛测试的就是参赛选手灵活使用数据结构和算法分析问题和解决问题的能力,我省自2005年起也举行了一年一次的ACM大学生程序设计竞赛;计算机软件资格考试中的设计师、程序员考试、计算机研究生、专升本的专业考试,很大部分考的都是数据结构的知识。所有的这些说明了在各种软件大规模使用的今天,数据结构和算法在计算机科学特别是软件开发科学中的核心地位。

课程采用最流行、最受欢迎的任务驱动式方法讲解,趣味引导、图文并茂,代码实现严格按面向对象语言(Java或C#)编程规范编写,学用一致:

典型任务:用与生活紧密相连、生动直观的典型任务创设学习情境,趣味引导

脉络清晰:课程内容置于由学习情境建构的以求解问题为主线的行动体系之中

大量图解:每一算法都配有详尽的图解,形象直观、语言通俗易懂

注重实现:代码规范、实现完整,每一单元都给出了详细的实现代码及运行结果

分层训练:按照验证性、训练性、设计性、创新性应用四个层次给出实践任务,引导读者分层次训练。





授课目标

(一)总目标

《数据结构》课程以培养学生的数据抽象能力和复杂程序设计的能力为总目标。通过本课程的学习,学生可以学会分析研究计算机加工数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的运算,并初步掌握算法的时间分析和空间分析技术;另一方面,本课程的学习过程也是工程化能力培养的过程,要求学生按软件开发过程分析问题,设计算法,并编写结构清楚、正确易读,符合软件工程规范的程序。

(二)分目标

1.知识目标

通过本课程的学习,学生应比较系统地从数据结构的逻辑结构、存储结构和运算三个方面去掌握线性表、栈、队列、串、数组、树、图等常用的数据结构;掌握在各种常用的数据结构上实现得排序和查找算法,同时对算法的时间和空间复杂性有一定得分析能力;针对简单的应用问题,应能选择合适得数据结构及设计有效得算法解决,并为后续课程的学习打好基础。

2.能力目标

1具备用面向对象的思想进行数据结构和算法设计的能力。

2具备选择合适的数据结构和方法进行问题求解,开发高质量软件的能力。

3.素质目标

1)提高数据结构的逻辑思维能力。

2)养成良好的编程习惯。


课程大纲
数据结构概述
课时目标:本章的目的是介绍数据结构中常用的基本概念和术语以及学习数据结构的意义。
1.1 数据结构的起源
1.2 从问题到程序的过程
1.3 数据结构的基本概念
1.4 算法及算法的测量
1.5 抽象数据类型
解决线性表的编程问题
课时目标:本章的目的是介绍线性表的逻辑结构和各种存储表示方法,以及定义在逻辑结构上的各种基本运算及其在存储结构上如何实现这些基本运算。要求在熟悉这些内容的基础上,能够针对具体应用问题的要求和性质,选择合适的存储结构设计出相应的有效算法,解决与线性表相关的实际问题。本章重点是熟练掌握顺序表和单链表上实现的各种基本运算及相关的时间性能分析,难点是在循环链表和双向链表存储结构中各种基本运算的实现。
2.1认识线性表
2.2 用顺序表实现线性表
2.3 用单链表实现线性表
2.4 用双向链表实现线性表
2.5 用循环链表实现线性表
2.6线性表的应用
解决栈的编程问题
课时目标:本章的目的是介绍栈的逻辑结构定义及在两种存储结构上如何实现栈的基本运算。要求在掌握栈的特点的基础上,懂得在什么样的情况下使用栈。本章重点是掌握栈在两种存储结构上实现的基本运算,难点是在实际应用中的找出栈的数据结构
3.1认识栈
3.2 用顺序栈实现栈
3.3 用链栈实现栈
3.4 栈的应用
解决队列的编程问题
课时目标:本章的目的是介绍队列的逻辑结构定义及在两种存储结构上如何队列的基本运算。要求在掌握队列的特点的基础上,懂得在什么样的情况下队列。本章重点是掌握队列在两种存储结构上实现的基本运算,难点是循环队列中对边界条件的处理
4.1认识栈
4.2 用顺序栈实现栈
4.3 用链栈实现栈
4.4 栈的应用
解决串的编程问题
课时目标:本章的目的是介绍串的逻辑结构、存储结构及其串上的基本运算。本章重点是掌握串的基本概念和串表示方法。
5.1认识串
5.2 String 类
5.3 StringBuilder类
5.4 串的应用
解决树和二叉树的编程问题
课时目标:本章的目的是介绍二叉树的定义、性质、存储结构、遍历及哈夫曼树及其哈夫曼编码等内容。本章重点是掌握二叉树及其二叉树的遍历。难点是掌握与树有关的简单应用。
6.1认识二叉树
6.2 用顺序结构实现二叉树
6.3 用链式结构实现二叉树
6.4 二叉树遍历算法的实现
6.5 构建哈夫曼树
6.6 哈夫曼树的应用
解决图的编程问题
课时目标:本章的目的是介绍图的逻辑结构定义及在两种存储结构上如何实现图的基本运算。要求在掌握图的特点的基础上,懂得在什么样的情况下图。本章重点是掌握图在邻接矩阵、邻接表的存储结构上实现的基本运算,难点是Dijkstra求最短路径算法的实现。
7.1 认识图
7.2 用邻接矩阵实现图
7.3 用邻接表实现图
7.4 图遍历算法的实现
7.5 图最短路径算法的实现
7.6 图的应用
理解掌握各种排序的基本思想、算法特点和排序过程及其时间复杂度。
课时目标:理解掌握各种排序的基本思想、算法特点和排序过程及其时间复杂度。
8.1 认识排序
8.2 直接插入排序
8.3 希尔排序
8.4 直接选择排序
8.5 堆排序
8.6 冒泡排序
8.7快速排序
8.8归并排序
8.9 基数排序
8.10 排序的应用
执行查找算法
课时目标:理解查找的基本概念;、熟练掌握线性表和树表、哈希表的查找技术。
9.1 认识查找
9.2 顺序查找
9.3 二分查找
9.4 分块查找
9.5 树表查找
9.6 哈希查找
9.7 查找的应用
展开全部
预备知识

《数据结构》是软件技术专业的一门专业基础课。课程的前导课程是《Java面向对象分析》或《C#面向对象编程》,本课程在后续软件开发类课程中起着非常重要的作用,其知识的应用将贯穿于本专业的两大主流方向Java方向和.net方向的所有课程。


参考资料

雷军环、吴名星主编《数据结构(Java语言版)》清华大学出版社,2015年11月,ISBN:978-7-302-41482-9

雷军环、邓文达、刘震主编《数据结构(C#语言版)》清华大学出版社,2009年2月,ISBN:978-7-302-19047-9

长沙民政职业技术学院
5 位授课老师
雷军环

雷军环

教授

吴名星

吴名星

副教授/国家系统分析师

王涛

王涛

副教授

推荐课程

力学(上)

张汉壮

9668人参加

C语言程序设计

翁恺

892929人参加

高级语言程序设计(Python)CAP

车万翔

134715人参加

Python云端系统开发入门

嵩天

108472人参加
下载
下载

下载App