SPOC学校专有课程
数据结构
分享
spContent=数据结构统领计算机世界,是打开计算机专业的大门, 为软硬件设计提供强大逻辑思想基础和实用工具基础。数据结构是一种对数据的组织方式,可以让我们高效地管理和使用数据。数据结构实际上是将计算机语言和实际生活进行联系的起点,学习数据结构就是学习如何使用计算机思维把现实问题转化为计算机语言的表示。 学习数据结构就是了解常用的数据结构类型,了解其利弊,适合于什么场景。比如可以用图的最短路径算法求出实际网络上一个结点到另一个结点的最短路径,用B+、B-树来组织操作系统里面海量的文件,用优先队列实现进程调度,用系统栈实现函数的调用。选择恰当的数据结构可以提高效率,学习数据结构就是学习高质量的解决方案,精通数据结构的程序员,会根据用户的实际需求,数据大小、类型选择最合适的结构。如排序树在查找中可以减少很多不必要的比较,比顺序查找要快很多,链表更适合修改操作,顺序表更适合查询操作。
—— 课程团队
课程概述

        随着计算机应用领域的扩大和软、硬件技术的发展,非数值计算问题的数据结构更为复杂,数据元素之间的相互关系一般无法用数学方程式加以描述,编程语言提供的基本数据结构不能满足需求。解决这类问题的关键不再是数学分析和计算方法,而是要设计出合适的数据结构,才能有效地解决问题,如链表、堆栈、二叉树、图等。《数据结构》是计算机相关专业的基础课,是介于数学、计算机硬件和计算机软件之间的一门十分重要的核心课程。《数据结构》不仅是简单程序设计的基础,也是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。通过本课程的学习,提高学生数据结构设计与算法设计能力,为后续课程打下厚实的知识基础。

       本课程主要讨论各种数据的抽象表示、实现方法、处理数据的算法设计以及对算法性能的分析。通过本科的学习,学时能够清楚表述数据结构和算法的基本概念,并能判断计算机处理不同数据时所采用的组织方法、操作原理和实现方法; 能够针对具体问题,运用数据结构课程相关知识和批判思维,分析计算机处理对象的结构特征,选择合适的数据存储结构,设计高效的操作算法;能够综合运用数据结构的基本原理和设计方法,研究复杂问题的特征,自主设计可行的求解方案,并能运用高级语言编写实现问题求解的应用程序,再验证其正确性。

        本课程以清华大学严蔚敏教授编著的《数据结构(C语言版)》为教材,以章节划分知识点,每个知识点录制10分钟左右的视频。每章都有以考察知识点为目标的单元测试,以巩固、提高对基本知识的理解,并提供相应章节的PPT素材,供同学们深入学习。希望通过本课程,为学生学习后续课程打下扎实的基础。

授课目标
  1. 掌握各类基本数据结构类型和相应的存储结构及该数据结构上的各种操作;

  2. 提高阅读和编写算法的能力;

  3. 针对给定问题,选择适合的数据结构,设计和分析算法。


成绩要求

成绩构成:平时成绩占20%,实验成绩占20%,期末考试占60%。

课程大纲
预备知识

离散数学,C语言程序设计

参考资料


1、教材

数据结构(C语言版),严蔚敏等编,清华大学出版社,2007.03第1版.

2、参考书

数据结构简明教程(第2版),李春葆等,清华大学出版社,2019.

数据结构题集(C语言版),严蔚敏,吴伟民,米宁,清华大学出版社,1999.

C++数据结构与算法(第4版),(美) 乔兹德克(Drozdek, A.)著 徐丹,吴伟敏译,清华大学出版社,2014.10.01.

数据结构、算法与应用 C++语言描述(原书第2版),(美)萨尼 著,王立柱,刘志红 译,机械工业出版社,2015.04.01.