spContent=河南师范大学“数据结构”课程是河南省高等学校精品在线开放课程,以严蔚敏教授编著十二五国家级规划教材为基础,将教学课件、学习指导与习题解答、试题库等辅助教学资料组成一体。本课程介绍了数据结构的基本概念、线性表、栈和队列、串、数组和广义表、树、图、查找和排序等内容,专注于培养学生对数据结构和算法思想的了解。
河南师范大学“数据结构”课程是河南省高等学校精品在线开放课程,以严蔚敏教授编著十二五国家级规划教材为基础,将教学课件、学习指导与习题解答、试题库等辅助教学资料组成一体。本课程介绍了数据结构的基本概念、线性表、栈和队列、串、数组和广义表、树、图、查找和排序等内容,专注于培养学生对数据结构和算法思想的了解。
—— 课程团队
课程概述
《数据结构》是一门研究非数值计算程序设计中的操作对象以及这些对象之间的关系和操作的学科,其主要研究数据组织和数据处理的方法。在国外,该课程作为一门独立的课程始于1968年,它出现在美国一些大学的计算机系的教学计划中,目前,该课程已成为计算机类专业一门非常重要的专业基础课程,它所研究的数据组织和数据处理的方法在后续的操作系统、编译原理、人工智能、计算机网络、数据库等课程中都是重要而必备的基础。
课程内容主要包括:数据结构的基本概念、线性表、栈和队列、串、数组和广义表、树、图、查找和排序。
从本质上讲,数据结构属于程序设计类课程,是程序设计语言课程的进阶篇。首先,程序是对数据的操作,由输入产生输出的IPO模式。对于比较复杂的处理对象,就需要从数据结构的角度来组织和存储数据,如采用顺序存储还是链式存储结构更加高效;另外,对于比较复杂的数据操作,就需要采用一些相应的数据结构来求解,如迷宫问题就借助于栈来完成。所以数据结构课程要讲解人们在软件开发中常见的数据结构,并从逻辑结构到存储结构,再到算法设计这三个层面加以学习。程序设计解决问题往往有多种方法,且不同方法之间的效率可能相差甚远。程序的时间和空间效率,不仅跟数据的组织方式有关,也跟处理流程的巧妙程度有关。本课程将介绍有关数据组织、算法设计、时间和空间效率的概念和通用分析方法,帮助学生学会数据的组织方法和一些典型算法的实现,是学生能够针对问题的应用背景分析问题及选择解决该问题应采用的数据结构,从而培养高级程序设计技能。
授课目标
数据结构是计算机科学与技术、物联网、网络工程、人工智能、信息管理等专业的一门重要学科基础课和必修课程。通过本课程的学习,一方面,使学生掌握计算机处理数据的方法,为数据选择适当的逻辑结构、存储结构及相应的算法,并初步了解对算法的时间复杂度和空间复杂度分析。另一方面,通过对本课程算法设计和上机实践的训练,培养学生的数据抽象能力和程序设计的能力。
课程大纲
第一章 绪论
第一讲 数据结构的基本概念
第二讲 数据类型和抽象数据类型
第三讲 算法和算法分析基础
第四讲 其它情况下的算法分析
第五讲 小结与练习
第二章 线性表
第一讲 线性表的基础概念
第二讲 线性表的顺序存储结构
第三讲 线性表的链式存储结构
第四讲 其它形式的链表
第五讲 线性表的算法设计
第六讲 线性表的应用
第七讲 小结与练习
第三章 栈和队列
第一讲 栈的定义和特点
第二讲 栈的表示和操作的实现
第三讲 栈的应用
第四讲 栈与递归
第五讲 队列的定义和特点
第六讲 队列的表示和操作的实现
第七讲 队列的应用
第四章 串和数组
第一讲 串的基本概念和存储
第二讲 串的模式匹配
第三讲 数组和特殊矩阵
第四讲 稀疏矩阵
第五章 树和二叉树
第一讲 树和二叉树的定义
第二讲 二叉树的性质和存储结构
第三讲 遍历二叉树
第四讲 线索二叉树
第五讲 树和森林
第六讲 哈夫曼树及其应用(一)
第七讲 哈夫曼树及其应用(二)
第六章 图
第一讲 图的基本概念及性质
第二讲 图的案例及存储结构
第三讲 图的遍历
第四讲 图的应用—最小生成树
第五讲 图的应用—最短路径
第六讲 图的应用—拓扑排序
第七讲 图的应用—关键路径
第七章 查找
第一讲 查找的基本概念及顺序查找
第二讲 折半查找及分块查找
第三讲 树表的查找--二叉排序树
第四讲 b-树 和 b+ 树
第五讲 散列表的查找
第八章 排序
第一讲 基本概念和排序方法概述
第二讲 插入排序
第三讲 交换排序
第四节 选择排序
第五讲 归并排序
第六节 基数排序
第七节 外部排序
展开全部
预备知识
掌握C语言程序, 对计算机处理离散结构的基本理论和方法有一定的了解。
参考资料
严蔚敏、李冬梅、吴伟民等,《数据结构》(C 语言版),人民邮电出版社