数据结构与算法
数据结构与算法
3万+ 人选课
更新日期:2026/04/04
开课平台学银在线
开课高校-
开课教师吴岳芬 副教授潘理李文彬郭观七蒋军强
学科专业工学计算机类
开课时间2026/03/09 - 2026/07/15
课程周期19 周
开课状态开课中
每周学时-
课程简介

这门课会讲什么?

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

该课程以课程思政为引领,以立德树人为根本,构建价值塑造、能力培养、知识传授三位一体的课程目标。根据课程特点,以学习者为中心,提高教学效果,摒弃以往照本宣科、纯理论讲授。该课程贯彻OBE教学理念,构建“1+1+2”混合式教学模式,践行“一一三四四”课程思政模式。全程采用项目式、问题驱动教学方法,提高知识内化效率,培养学生的工程应用能力和自主学习、团队协作能力。选择经典实际应用项目贯穿课程所有章节,如:手机通讯录设计、岳阳楼公园导游系统设计、银行排队叫号问题、手机计算器应用等,拓展知识维度。

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

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

你将收获什么?

这里,你可以一窥唐纳德克努特笔下树、表、图的奥秘!

这里,你可以沿袭世界算法大师们的思维,领略算法的美妙!

这里,你可以跟随课程团队,一步步探索工程问题的解决方法!

这里,是你通往程序设计高手的必经之路!


适合什么人学习?

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

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

计算机、大数据、人工智能、软工、物联网、电信、信工、通信、自动化、网络、数学、

物电、信息与计算科学等专业学生!


课程大纲

课程章节

  • 第1讲 绪论
  • 第2讲 线性表(上) -顺序表
  • 第3讲 线性表(下) -单链表
  • 第4讲 栈
  • 第5讲 队列-循环队列
  • 第6讲 队列-链队列
  • 第7讲 串、数组和广义表
  • 第8讲 树和二叉树
  • 第9讲 图-图的定义及存储
  • 第10讲 图 -图的遍历
  • 第11讲 图 -最短路径
  • 第12讲 图-最小生成树
  • 第13讲 查找
  • 第14讲 内排序
  • (附)算法动画演示 (36个)

第1讲 绪论

1.1 数据结构概述 (2小节)

1.2 算法概述(2小节)

第2讲 线性表(上) -顺序表

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

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

2.3 解决方案(4小节)

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

第3讲 线性表(下) -单链表

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

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

3.3 解决方案(4小节)

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

第4讲 栈

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

4.2 理论基础(4小节)

4.3 解决方案(2小节)

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

第5讲 队列-循环队列

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

5.2 理论基础(2小节)

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

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

第6讲 队列-链队列

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

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

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

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

第7讲 串、数组和广义表

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

7.2 理论基础(4小节)

7.3 解决方案(3小节)

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

第8讲 树和二叉树

8.1 项目引入-哈夫曼编码

8.2 理论基础 (14小节)

8.3 解决方案(4小节)

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

第9讲 图-图的定义及存储

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

9.2 基础理论(3小节)

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

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

第10讲 图 -图的遍历

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

10.2 理论基础(3小节)

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

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

第11讲 图 -最短路径

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

11.2 理论基础(3小节)

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

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

第12讲 图-最小生成树

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

12.2 理论基础(3小节)

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

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

第13讲 查找

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

13.2 理论基础(8小节)

13.3 解决方案- 手机通讯录的查找操作(2小节)

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

第14讲 内排序

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

14.2 基础理论(6小节)

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

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

(附)算法动画演示 (36个)

15.1 顺序表插入

15.2 顺序表删除

15.3 顺序查找

15.4 单链表插入

15.5 头插法建链表

15.6 尾插法建链表

15.7 顺序队列

15.8 循环队列

15.9 顺序栈

15.10 栈与递归

15.11 双栈

15.12 二叉树的建立

15.13 树到二叉树的转换

15.14 中序线索化二叉树

15.15 构造哈夫曼树的过程

15.16 构造哈夫曼树的算法模拟

15.17 寻找中序二叉树指定结点的后继

15.18 寻找中序二叉树指定结点的前趋

15.19 邻接表表示的深度搜索

15.20 邻接表表示的图的广度优先遍历

15.21 克鲁斯卡尔算法

15.22 拓扑排序

15.23 插入排序

15.24 二分查找

15.25 分块查找

15.26 开放地址散列

15.27 拉链法散列

15.28 顺序查找

15.29 二叉排序树的生成

15.30 二叉排序树的删除

15.31 StraightSelectionSort

15.32 归并排序

15.33 基数排序

15.34 快速排序

15.35 希尔排序

15.36 冒泡排序

App 下载
关注我们