《数据结构》课程教案
课程类别:专业基础课
合用专业:计算机应用技术
授课学时: 32 学时
课程学分: 4 学分
一、课程性质、任务
课程性质: 《数据结构》是计算机应用技术专业的必修课程,也是研究如何 对数据进行组织和设计、如何编制高效率的处理程序的一门基础学科。
课程任务:
1、学习计算机程序编写中的数据组织和设计;
2、数据的物理结构和逻辑结构;
3、经典算法的设计和算法效率的分析。
二、课程培养目标:
(一)知识目标
通过理论学习和程序的编写, 使学生系统地掌握程序中数据的组织、 数据的 物理结构和逻辑结构,在重要算法的实现上逐步提高编程能力。
(二)技能目标
通过课程的学习, 让学生掌握重要的数据结构, 对数据的逻辑结构和物理结 构有深入的理解, 同时能编写出使用重要算法知识的程序, 并运用所学知识编写 程序解决实际中的问题。
(三)素质目标
通过课程的学习, 让学习学会自学, 培养学生的自学能力、 克服学习艰难的 能力,同时让学生掌握计算机编程中数据结构的学习方法,并养成严谨、认真、 子细、塌实、上进的好习
惯。
三、 选用教材与参考资料
教材版本信息
《数据结构与算法简明教程(Java 语言版)》 清华大学出版社
叶小平 陈瑛 主编
教材使用评价
本教材经过两年的使用, 得到了读者一致认可,同时也在不断改进,适合高 职高专教学使用, 内容基础、 重难点突出, 符合高职高专“理论够用、 注重实践” 的要求。
选用的参考资料
严蔚敏.吴伟民《数据结构(C 语言版)》.清华大学出版社.2022 年版 殷人昆. 《数据结构》 .清
华大学出版社.1999 年版
《C 语言程序设计》 .石油大学出版社
《C 语言程序设计》 .中国石油大学出版社.2022 年版
四、本课程与其他课程的联系与分工
先修课程
《离散数学》、《程序设计基础》
后续课程
《面向对象技术》、《操作系统》
与其他课程配合与取舍情况
《数据结构》与《离散数学》知识点结合较多, 《离散数学》讲求逻辑 思维能力的培养和训练, 《数据结构》中逻辑结构的学习也需要逻辑思维能力做 铺垫。同时《程序设计基础》
课程也为学习《数据结构》打下了基础,对于本课 程的教材, 我们采用 C 语言来描述数据结构, 因此程序设计基础也是以 C 语言作 为的对象。本课程也与《算法设计与分析》结合得很密切,因此在学习中我们也 会引入常见算法的学习, 达到两者共同促进的目的。
五、课程教学内容与基本要求 第一章 数据结构导论
( 一)、教学内容
第一节 数据结构的基本概念
一、引言
二、数据结构有关概念及术语 第二节 算法和算法描述
一、什么是算法
二、算法描述工具——类 C 语言 第三节 算法评价
一、时间
二、空间
(二)、教学目的要求
通过本章的学习让学生了解数算法的基本概念,理解如何运用类 C 语言来描 述算法, 掌握据结构的概念和相关术语、 算法的描述方法, 学会从程序中分析算 法效率和用函数式表示该程序的算法效率。
在学完本章后,要求学生对数据结构的涉及领域有大体的认识, 同时了解数 据结构的作用, 明确数据结构和程序开辟的关系。通过对算法效率的分析, 学会 使用这一知识点来优化自己所写程序的执行效率。
重难点分析: 本章重点是据结构的概念和相关术语, 特殊是数据的逻辑结构 和物理结构的含义, 顺序存储和链式存储的含义, 类 C 语言的表示。 难点是学会 从程序中分析算法效率和用函数式表示该程序的算法效率。
第二章 线性表
(一)、教学内容
第一节 线性表的逻辑结构
一、线性表的定义
二、线性表的基本操作
第二节 线性表的顺序存储结构
一、顺序存储结构
二、基本操作的实现
三、动态分配的顺序存储结构介绍 第三节 线性表的链式存储结构
一、单链表
二、单链表的基本操作
第四节 循环链表和双向链表
一、循环链表
二、双向链表
第五节 线性表的应用——多项式相加问题
(二)、教学目的要求
通过本章的学习让学生进一步了解线性表的定义、稀疏矩阵的三元组存储, 掌握 C 语言中指针知识的运用和链表的实现方式, 掌握线性表的基本操作和顺序 存储结构、链式存储结构的实现,同时进一步掌握数组、矩阵的操作,学会编写 程序实现矩阵的两种转置算法。
在学完本章后,要求学生能够掌握编程实现线性表中元素的插入和删除操 作,对于双向链表的插入和删除操作要操作熟练,同时能编程实现运用线性表解 决多项式相加问题、运用数组实现矩阵的转置问题。
重难点分析: 本章重点是线性表的基本操作和顺序存储结构、链式存储结构 的实现,数组、矩阵的操作,编写程序实现多项式相加问题(应用线性表)、矩 阵的两种转置算法。 难点
是链式存储结构的实现、 编写程序实现矩阵的两种转置 算法以及稀疏矩阵的十字链表算法。
第三章 栈和队列
第一节 栈
一、 栈的定义及其运算
二、 栈的顺序存储结构
三、 栈的链式存储
四、 栈的应用举例 第二节 队列
一、队列的定义及运算
二、队列的顺序存储结构
三、队列的链式存储结构
第三节 栈和队列的应用实例——停车场管理
(二)、教学目的要求
通过本章的学习让学生进一步了解线性栈和队列的定义和常见用途,掌握栈 和队列的基本操作,掌握栈和队列的顺序存储结构及链式存储结构的实现。
在学完本章后, 要求学生能够掌握编程实现栈和队列中的元素插入和删除操 作,,同时能够运用栈和队列的知识编写程序实现停车场管理、划份子集问题、 敢死队问题等经典算法。
重难点分析: 本章重点是栈和队列的基本操作, 掌握栈和队列的顺序存储结 构及链式存储结构。难点是编写程序实现栈和队列的链式存储结构及插入和删除 操作。
第四章 串和数组
第一节 串的定义
一、串的定义
二、串的存储结构
第二节 数组的基本概念
一、数组的定义
二、数组的顺序存储结构
第三节 特殊矩阵和稀疏矩阵压缩存储
一、特殊矩阵压缩存储
二、稀疏矩阵压缩存储
(二)、教学目的要求
通过本章的学习让学生进一步了解线性表中数组的定义、稀疏矩阵的三元组 存储, 同时进一步掌握数组、 矩阵的操作, 学会编写程序实现矩阵的两种转置算 法。
在学完本章后, 要求学生能够编程实现运用线性表解决多项式相加问题、 运 用数组实现矩
阵的转置问题。
重难点分析: 本章重点是数组的基本操作和顺序存储结构, 矩阵的两种转置 算法。难点是编写程序实现矩阵的两种转置算法以及稀疏矩阵的十字链表算法。
第五章 树
第一节 树的定义和基本术语
一、 树的定义
二、 树的基本术语 第二节 二叉树
一、二叉树的定义
二、二叉树的重要性质
三、二叉树的存储结构
四、建立二叉树的二叉链表 第三节 遍历二叉树
一、先根遍历
二、中根遍历
三、后根遍历
第四节 线索二叉树
一、线索二叉树的基本概念
二、中根线索二叉树
第五节 二叉树、树和森林
二叉树的基本性质一、树的存储结构
二、树与二叉树之间的转换
三、森林与二叉树的转换
四、树和森林的遍历
第六节 哈夫曼树及其应用
第七节 二叉树遍历算法的简单应用实例
(二)、教学目的要求
通过本章的学习让学生了解树和森林的遍历, 树在计算机编程中的应用, 理 解树的性质、 线索二叉树的含义, 掌握数据结构中树的定义和相关术语、 二叉树 的逻辑结构和物理结构、二叉树的先根遍历、中根遍历、后根遍历和层次遍历, 二叉树和非二叉树的普通树的转换, 二叉树和森林的转换, 哈夫曼树的含义和应 用,二叉树遍历算法的简单应用的程序实现。
在学完本章后, 要求学生能够运用树的性质解决常见的树的求解问题, 同时 能够编程实现树的遍历、树的层数和叶子总数等等的计算。
重难点分析:本章重点是掌握数据结构中树的定义和相关术语,树的性质, 二叉树的逻辑结
构和物理结构、 二叉树的先根遍历、 中根遍历、 后根遍历和层次 遍历, 二叉树和非二叉树的普通树的转换, 二叉树和森林的转换, 哈夫曼树的含 义和应用。难点是理解并掌握如何编程实现二叉树遍历算法的简单应用。
第六章 图
第一节 图的基本概念
一、图的定义
二、图的基本术语
第二节 图的存储结构
一、邻接矩阵表示法
二、邻接表
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论