数据结构
5000+ 人选课
更新日期:2025/06/27
开课时间2024/02/26 - 2024/07/06
课程周期19 周
开课状态已结课
每周学时-
课程简介

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

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

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

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

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

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

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

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





课程大纲
数据结构概述
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 哈夫曼树的应用
解决图的编程问题
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 查找的应用