数据结构与算法
数据结构与算法
1000+ 人选课
更新日期:2025/07/06
开课时间2025/02/18 - 2025/07/10
课程周期21 周
开课状态开课中
每周学时-
课程简介

“数据结构与算法”是计算机类专业本科必修的核心课程,是进行程序设计训练、培养系统软件设计能力不可或缺的重要基础课程。本课程的任务是研究数据的逻辑结构、存储结构以及对数据操作的算法设计。要求学生掌握数据结构设计和算法设计的基础理论和技术方法,培养算法设计能力。

本课程全面系统地介绍数据结构的基础理论和算法设计方法,采用Java语言以面向对象方法设计并实现线性表、树、图等数据结构以及查找和排序算法。

 “数据结构与算法”是理论和实践紧密结合的课程,不仅要深刻理解基础理论,还要在实践中通过训练掌握算法设计的方法和技能,逐步积累经验,培养系统软件设计能力。

本课程共72学时,其中讲课56学时,实验16学时(8次实验)。讲课内容和学时分配详见以下“课程大纲”;课程考核方式及要求见“设置”-“评分标准”。

 本课程内容多,概念抽象,理论深奥,链式存储结构和递归算法设计学习难度大,较难理解和掌握;理解软件系统设计的本质,培养算法设计能力,需要一段时间,不能立竿见影。

课程大纲
绪论
第1章 绪论(2+0学时)
1.1 数据结构的基本概念
1.2 算法
线性表
第2章 线性表(8+2学时)
2.1 线性表的定义及抽象数据类型
2.2 线性表的顺序存储结构和实现(2学时)
2.3 线性表的链式存储结构和实现(3学时)
2.4 排序线性表的存储和实现(2学时)
2.5 线性表的应用:多项式的存储和运算(1学时)
实验1 线性表的基本操作(2学时)
字符串
第3章 字符串(6+2学时)
3.1 字符串抽象数据类型
3.2 字符串的顺序存储结构和实现(2学时)
3.3 字符串的模式匹配(4学时)
实验2 字符串的基本操作及模式匹配算法(2学时)
栈、队列和递归
第4章 栈、队列和递归(6+2学时)
4.1 栈(2学时)
4.2 队列(2学时)
4.3 递归(2学时)
实验3 栈和队列以及递归算法(2学时)
数组和广义表
第5章 数组和广义表(2学时)
5.1 数组
5.2 特殊矩阵的压缩存储
5.3 广义表
二叉树和树
第6章 二叉树和树(8+4学时)
6.1 二叉树(4学时)
6.2 树(2学时)
6.3 二叉树应用(2学时)
实验4 二叉树的基本操作(2学时)
实验5 树的基本操作(2学时)

第7章 图(8+2学时)
7.1 图的概念和抽象数据类型
7.2 图的存储结构和实现(2学时)
7.3 图的遍历(2学时)
7.4 最小生成树(2学时)
7.5 最短路径(2学时)
实验6 图的存储结构和操作算法(2学时)
查找
第8章 查找(6+2学时)
8.1 查找基础
8.2 索引(2学时)
8.3 散列(2学时)
8.4 二叉排序树和平衡二叉树(2学时)
8.5 映射
实验7 查找算法设计(2学时)
排序
第9章 排序(6+2学时)
9.1 插入排序(2学时)
9.2 交换排序
9.3 选择排序(2学时)
9.4 归并排序(2学时)
9.5 线性表的排序算法
实验8 排序算法设计(2学时)
综合应用设计
第10章 综合应用设计(4学时)
10.1 Java集合框架(2学时)
10.2 实现迭代器
10.3 算法设计策略(2学时)