您好,欢迎访问三七文档
1课程简介人们在运用程序设计语言编写程序的过程中发现所有的数据都可以抽象为三种结构,而对这些数据的所有操作都可以转化为对这三种数据的几种基本操作,而大多数的程序设计技巧都可以抽象为一些最基本的算法。于是人们逐步发展了一门称为数据结构(或数据结构与算法)的计算机科学,它广泛应用于计算机领域。数据结构是信息与计算专业的核心基础课程之一。数据是计算机处理的对象,本课程研究的数据是非数值性、结构性的数据。学习本课程要求掌握各种主要数据结构的特点、计算机内的表示方法,以及处理数据的算法,对于算法所花费的时间和空间代价的分析也要求有一定程度的了解和掌握。通过本课程的学习,使学生透彻地理解各种数据对象的特点,学会数据的组织方法和实现方法,并进一步培养基本的良好的程序设计能力。本课程主要包括如下三个方面的内容:1.基本数据结构:线性表、栈、队列、串、数组和广义表,掌握它们的特点、表示和实现,对静态结构要求非常熟练的编程上机实现,对动态结构要求逐步熟悉链表的表示,通过模仿实验教程中的例子,掌握编程技巧。强调类C语言的书写规范,特别注意参数的区别,输入输出的方式和错误处理方式,以及抽象数据类型的表示和实现。能熟练完成以下的应用:多项式的计算、语法检查、回朔算法、递归算法、表达式求值、离散事件模拟、文字的编辑和稀疏矩阵进行矩阵运算采用的处理方法。2.复杂数据结构:树、二叉树、图。掌握它们的定义和特点、表示和实现,特别注意与基本数据结构的区别,掌握各种遍历的递归和非递归算法,能熟练完成以下的应用:最优树、Huffman编码、拓扑排序、关键路径和最短路径问题。3.数据结构的应用:查找和内部排序。熟练掌握静态查找表的查找方法和实现,了解哈希表的构造和查找方法。掌握各种内部排序方法的基本思想、算法特点、排序过程以及它们的时间复杂度分析。2《数据结构》教学大纲课程名称:数据结构课程编号:014100028适用专业:计算机、信息管理总学时数:60学分数:4一、课程的性质、目的与任务数据结构是计算机科学技术、信息管理等专业的核心课程之一,是一门理论与工程实践密切相关的综合性课程,在计算机学科教学中具有十分重要的作用。大力加强数据结构课程的建设,提高数据结构课程的教学质量,有利于教学改革和教育创新,有利于高级应用型人才和创新人才的培养。《数据结构》课程是计算机专业的专业基础课程,介绍计算机领域的常用数据结构以及各种查找和排序的算法,是计算机专业学生必修的一门技术基础课程,也是计算机专业的核心课程。数据结构是计算机专业的一门重要的专业基础课,主要解决数据的表示和数据的处理,系统介绍三大数据结构及其实现,为操作系统等课程提供必要的知识基础,为计算机人员提供必要的基本技能。二、课程教学基本要求本课程介绍常用数据结构之间的逻辑结构、存储结构和对其施加的运算,如:线性表、栈、队列、串、数组、广义表、树、图等。同时还介绍各种查找和排序的算法。通过本门课程的学习,应使学生掌握以下几个方面的知识:1:系统学习常用基本数据结构及其在不同存储方式下的实现,掌握分析、选择不同的数据结构和存储结构的原则和方法。2:学习和掌握在各种存储结构上实现的各种算法及其设计思想,从而学习各种分析问题和解决问题的能力。3:掌握各种算法的时空效率的分析方法,学会在实际应用中选择合适的算法。4:掌握各种查找和排序的算法以及效率,并将其应用在程序设计中。三、课程教学内容体系第一章:概论1.1什么是数据结构1.2基本概念和术语1.3抽象数据类型的表现与实现1.4算法和算法分析教学要求:理解数据、数据元素、数据项的概念;掌握逻辑结构和存储结构的关系;理解算法的基本概念;学会分析算法的时间复杂性和空间复杂性。第二章:线性表2.1线性表的类型定义2.2线性表的顺序表示和实现2.3线性表的链式表示和实现(静态查找表不讲)2.4一元多项式的表示及相加教学要求:理解线性表的定义和特点;掌握顺序表和链表的特点,掌握在这两种存储结构上各种基本运算的实现算法以及效率的分析,并学习在这两种存储结构上进行算法设计的方法;以达到利用基本算法进行较复杂算法设计的目的。第三章:栈、队列3.1栈33.2栈的应有和举例3.2.1数制转换3.3.4迷宫求解3.3栈与递归的实现3.4队列教学要求:理解栈和队列的定义、特点,学习它们的各种组织方式及算法;掌握它们的空和满的判断条件;并学会它们的简单应用。第四章:串4.1串类型的定义4.2串的表示和实现4.2.1定长顺序存储表示4.2.3串的块链存储表示4.3串的模式匹配算法4.3.1求字串位置的定位函数教学要求:了解串的概念,掌握串的基本运算,学习串运算在不同存储结构下的实现过程。第五章:多维数组和广义表5.1数组的定义5.2数组的顺序表现和实现5.3矩阵的压缩存储教学要求:领会数组的定义,数组的两种顺序存储结构,并领会几种特殊矩阵和稀疏矩阵的压缩存储方法。第六章:树6.1树的定义和基本术语6.2二叉树6.2.1二叉树的定义6.2.2二叉树的性质6.2.3二叉树的存储结构6.3遍历二叉树和线索二叉树6.3.1遍历二叉树6.4树和森林6.4.1树的存储结构6.4.2森林与二叉树的转换6.4.3树和森林的遍历6.6赫夫曼树及其应用6.6.1最优二叉树(赫夫曼树)6.6.2赫夫曼编码教学要求:理解树型结构的概念和术语,领会二叉树的定义、形态、性质和存储结构,掌握二叉树的各种遍历算法极其实现过程,了解树和森林及其相互转换;掌握哈夫曼树极其应用。第七章:图7.1图的定义和术语7.2图的存储结构7.2.1数组表示法7.2.2邻接表47.2.3十字链表7.2.4邻接多重表7.3图的遍历7.3.1深度优先搜索7.3.2广度优先搜索7.4图的连通性问题7.4.1无向图的连通分量和生成树7.4.3最小生成树7.5有向无环图及其应用7.5.1拓扑排序7.5.2关键路径7.6最短路径7.6.1从某个源点到其余各顶点的最短路径教学要求:理解图型结构的概念和术语,掌握图的邻接矩阵和邻接表两种存储形式,理解图的遍历的基本思想,掌握图的两种遍历的方法和其实现的过程,学会图在最小生成树、拓扑排序、最短路径、关键路径中的应用。第九章:查找9.1静态查找表9.1.1顺序表的查找9.1.2有序表的查找9.1.4索引顺序表的查找9.3哈希表9.3.1什么是哈希表9.3.2哈希函数的构造方法9.3.3处理冲突的方法教学要求:掌握查找表的定义和分类,熟练掌握顺序查找和二分查找的思想,了解二叉排序树及其查找,了解散列查找的思想和有关方法。第十章:内部排序10.1概述10.2插入排序10.2.1直接插入排序10.2.2其他插入排序(表的插入排序不讲)10.2.3希尔排序10.3快速排序10.4选择排序10.4.1简单选择排序10.5归并排序教学要求:熟练掌握各种排序方法的思想和特点,如:插入排序、交换排序、选择排序、分配排序等,学会分析它们的优点和缺点以及时空性能,并学会选择和应用各种排序方法解决实际问题。5四、学时分配章节内容讲授学时上机学时习题学时一概论400二线性表611三栈、队列611四串211五数组和广义表411六树和二叉树811七图811九查找211十内部排序411总学时数:60课时4488五、推荐教材及教学参考书1.教材《数据结构》;严蔚敏编著;清华大学出版社2.教学参考书《算法与数据结构(C语言版)》,范策等编著,机械工业出版社,2004《数据结构(C语言版)》,严蔚敏等编著,清华大学出版社2004《数据结构与算法》,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,2004《数据结构实用教程(第二版)》,徐孝凯编著,清华大学出版社2006《数据结构辅导与提高实用教程(第二版)》,徐孝凯,清华大学出版社2003《数据结构》,谢楚屏等,人民邮电出版社,2001《算法与数据结构-C语言描述》,张乃孝等,高等教育出版社,2002《数据结构》,殷人昆,清华大学出版社,2001《计算机算法设计与分析》,苏德富,电子工业出版社,2001《算法与数据结构》,傅清祥,王哓冬,电子工业出版社,1998《数据结构-C++与面向对象的途径》,张乃孝,裘宗燕,高等教育出版社,2001《数据结构-用面向对象方法与C++描述》,殷人昆等清华大学出版社《算法设计与分析》,梁田贵,张鹏编著,冶金工业出版社,2004六、考核办法和成绩评定标准根据教学要求进行期末考试,由任课教师根据完成情况进行评定,并最终结合平时成绩的考核给出综合成绩。制定:制定日期:6教案(首页)授课时间教案编写时间课程名称数据结构课程代码总学时讲课:学时上机:学时实习:周学分课程性质必修课(√)选修课()理论课(√)实验课()任课教师职称授课对象专业:年级:班级:教材和主要参考资料选用教材:《数据结构》,严蔚敏编著清华大学出版社主要参考书:《算法与数据结构(C语言版)》,范策,周世平,胡哓琨等编著,机械工业出版社,2004《数据结构(C语言版)》,严蔚敏等编著,清华大学出版社2004《数据结构与算法》,许卓群,杨冬青,唐世渭,张铭,高等教育出版社,2004《数据结构实用教程(第二版)》,徐孝凯编著,清华大学出版社2006《数据结构辅导与提高实用教程(第二版)》,徐孝凯,清华大学出版社2003《数据结构》,谢楚屏等,人民邮电出版社,2001《算法与数据结构-C语言描述》,张乃孝等,高等教育出版社,2002《数据结构》,殷人昆,清华大学出版社,2001《计算机算法设计与分析》,苏德富,电子工业出版社,2001《算法与数据结构》,傅清祥,王哓冬,电子工业出版社,1998《数据结构-C++与面向对象的途径》,张乃孝,裘宗燕,高等教育出版社,2001《数据结构-用面向对象方法与C++描述》,殷人昆等清华大学出版社《算法设计与分析》,梁田贵,张鹏编著,冶金工业出版社,2004教学目的和教学要求通过本门课程的学习,应使学生掌握以下几个方面的知识:1.系统学习常用基本数据结构及其在不同存储方式下的实现,掌握分析、选择不同的数据结构和存储结构的原则和方法。2.学习和掌握在各种存储结构上实现的各种算法及其设计思想,从而学习各种分析问题和解决问题的能力。3.掌握各种算法的时空效率的分析方法,学会在实际应用中选择合适的算法。4.掌握各种查找和排序的算法以及效率,并将其应用在程序设计中。教学重点和教学难点重点掌握数据结构之间的逻辑结构、存储结构和对其施加的运算,如:线性表、栈、队列、串、数组、广义表、树、图等。应掌握各种查找和排序的算法。难点章节:第六章:树和第七章:图。7教学进程第1次课第2次课第3次课第4次课第5次课第6次课第7次课第8次课第9次课第10次课第11次课第12次课第13次课第14次课第15次课第16次课第17次课第18次课第19次课第20次课第21次课第22次课第23次课第24次课第25次课第26次课第27次课第28次课第29次课第30次课授课章节第1章绪论:1.1什么是数据结构、1.2基本概念和术语第1章:1.3抽象数据类型的表现与实现1.4算法和算法分析第2章线性表:2.1线性表的类型定义2.2线性表的顺序表示第2章:2.3线性表的链式表示和实现(1)第2章:2.3(2)2.4一元多项式的表示及相加第3章栈和队列:3.1、3.2.1第3章栈和队列:3.2.4、3.2.5、3.3第3章栈和队列:3.4综合习题课(1):前3章的相关内容综合实验课(1):前3章的相关内容第4章串:4.1、4.2.1、4.2.2、4.2.3、4.3.1第5章数组和广义表:5.1、5.2第5章数组和广义表:5.3综合实验课(2):第4-5章的相关内容第6章树和二叉树:6.1、6.2第6章树和二叉树:6.3、6.4.1第6章树和二叉树:6.4.2、6.6第6章树和二叉树:综合习题课(2):树的相关内容第7章图:7.1、7.2第7章图:7.3、7.4.1、7.4.3第7章图:7.6第7章图:综合习题课(3):图的相关内容第9章查找:9.1、9.3综合实验课(3):第9章的相关内容第10章内部排序:10.1、10.
本文标题:《数据结构》教案
链接地址:https://www.777doc.com/doc-3386300 .html