数据结构
数据结构
20万+ 人选课
更新日期:2026/03/30
开课平台爱课程(中国大学MOOC)
开课高校武汉大学
开课教师李春葆
学科专业工学计算机类
开课时间2017/03/20 - 2017/07/07
课程周期16 周
开课状态已结课
每周学时-
课程简介

从本质上讲,数据结构属于编程类的课程,是程序设计语言课程的进阶篇。首先,程序是对数据的操作,由输入产生输出。对于比较复杂的数据,就需要从数据结构的角度来组织和存储数据,如采用数组还是链表存储结构更加高效;另外,对于比较复杂的数据操作,就需要采用一些特定的数据结构来求解,如判断一个表达式中的括号是否匹配,就需要采用栈来处理。所以数据结构课程中讲解人们在软件开发中常见的各种数据结构,并从逻辑结构到存储结构,再到运算算法设计3个层面加以学习。

程序设计解决问题往往有多种方法,且不同方法之间的效率可能相差甚远。程序的时间和空间效率,不仅跟数据的组织方式有关,也跟处理流程的巧妙程度有关。本课程将介绍有关数据组织、算法设计、时间和空间效率的概念和通用分析方法,帮助学生学会数据的组织方法和一些典型算法的实现,能够针对问题的应用背景分析,选择合适的数据结构,从而培养高级程序设计技能。

从计算机科学专业的课程设置来看,数据结构是重要的专业基础课。在计算机软件类课程体系中处于承上启下的核心地位,它一方面扩展和深化在离散数学、程序设计语言等课程学到的基本技术和方法,另一方面为进一步学习其他专业课(如算法设计与分析、操作系统、软件工程等)奠定坚实的理论与实践基础。


课程大纲

1 绪论

1讲―数据结构总览

2讲―什么是数据结构

3讲―数据结构求解问题的过程

4讲―算法及其描述

5讲―算法分析基础

6讲―其他情况的算法分析

7讲-本周小结

2 线性表(上)

1讲―线性表的基本概念

2讲―线性表的顺序存储结构

3讲―顺序表算法设计

4讲―单链表

5讲―单链表的算法设计

第6讲-本周小结

3 线性表(下)

1讲―双链表

2讲―循环链表

3讲―线性表的应用

4讲―有序表

第5讲-本周小结

4 栈和队列

1讲―栈的定义和顺序栈

2讲―链栈

3讲―队列的定义和顺序队

4讲―链队

5讲―栈和队列求解迷宫问题

第6讲-本周小结

5

1讲―串的概念和存储结构

2讲―串的模式匹配

第3讲-本周小结

6 递归

1讲―什么是递归

2讲―递归算法的设计

第3讲-本周小结

7 数组和稀疏矩阵

1讲―数组

2讲―稀疏矩阵

第3讲-本周小结

8 树和二叉树(上)

1讲―树的概念

2讲―树的运算和存储结构

3讲―二叉树的概念

4讲―二叉树的存储结构

5讲―二叉树基本运算及其实现

第6讲-本周小结

9 树和二叉树(下)

1讲―二叉树的遍历

2讲―二叉树遍历的应用

3讲―二叉树的构造

4讲― 线索二叉树

5讲―哈夫曼树

第6讲-本周小结

10 图(上)

1讲―图的概念

2讲―图的存储结构

3讲―图的遍历

4讲―图遍历的应用

第5讲-本周小结

11周图(下)

1讲―最小生成树和Pim算法

2讲―求最小生成树的Kruskal算法

3讲―最短路径和Dijkstra算法

4讲―求最短路径的Floyd算法

5讲―拓扑排序

6讲―求关键路径

7讲―小算法解决大问题

第8讲-本周小结

12 查找

1讲―查找的概念

2讲―线性表的查找

3讲―二叉排序树

4讲―平衡二叉树

5讲―B树和B+

6讲―哈希表的查找

7讲-本周小结

13 内排序

1讲―排序的概念

2讲―插入排序

3讲―交换排序

4讲―选择排序

5讲―归并排序

6讲―基数排序

7讲―內排序的比较

第8讲-本周小结

14 外排序

1讲―外排序概述

2讲―磁盘排序―生成初始归并段

3讲―磁盘排序―多路平衡归并

4讲―磁盘排序―最佳归并树

第5讲-本周小结

App 下载
关注我们