数据结构课程教学大纲共三套
《数据结构》课程教学大纲(三套)
数据结构课程教学大纲(三套)《数据结构》课程教学大纲(36/36 课时)一、课程的性质和任务数据结构是计算机及应用专业中一门重要的专业基础课程,在计算机软件的各个领域中均会使用到数据结构的有关知识。
当用计算机来解决实际问题时,就要涉及到数据的表示及数据的处理,而数据表示及数据处理正是数据结构课程的主要研究对象,通过这两方面内容的学习,为后续课程,特别是软件方面的课程打开厚实的基础。
因此,数据结构课程在计算机应用专业中具有举足轻重的作用。
本课程的任务是:在基础方面,要求学员掌握常用数据结构的基本概念及其不同的实现方法;在技能方面,通过系统学习能够在不同存储结构上实现不同的运算,并对算法设计的方式和技巧有所体会。
总言之,使应用者较全面的掌握各种常用的数据结构,提高运用数据结构解决实际问题的能力。
二、课程的基本要求本课程的教学基本要求如下:本课程要求理论必须与上机实践操作相结合,多做题和调试算法,实现算法。
实践项目只利用课堂时间是不够的,必须提前布置给学生。
通过本课程的学习与实践,学生应达到:1、掌握数据结构的基本概念和基本理论;2、熟练掌握顺序表、链表、队列、栈、树以及二叉树、图等基本数据结构的设计和分析;3、熟练地掌握常用算法(递归、遍历、查找、排序)的知识;4、能对所求解的问题进行分析,抽象出逻辑结构,选择合适的存储结构定义所需的运算,设计相应的算法;5、对算法进行分析和评价。
三、教学内容(一)理论教学(二)实践环节四、课时分配《数据结构》课程共4学分,课内72学时,其中理论课36学时,上机36学时。
五、大纲说明本课程必须理论与上机实践操作相结合,并要教、学、练相结合,讲清基本概念,指出知识要点、重点和难点,并通过实例分析解决算法难点;要求学生认真预习、认真听课、认真思索、认真做实验, 通过对算法的编程实现来提高学生 由于内容多、 难度大, 要特别注重精讲多练, 实践项目一定 要提前布置给学生, 调动学生的主观能动性,鼓励学生多提 问题、共同探讨和解决问题。
《数据结构》课程教学大纲(计算机)
《数据结构》课程教学大纲一、课程基本信息二、课程教学目标本课程介绍软件设计中常用的线性表、栈、队列、串、数组、广义表、树、二叉树、图结构等几种基本的数据结构及其存储结构和所施加的运算与实现等。
另外,还介绍软件设计中常用的几种查找和排序算法,以及递归技术等,在介绍各项内容的同时,还涉及到算法设计与分析的基本技术和面向对象程序设计的理论与技术等内容。
通过本课程的学习,达到以下目标:熟练掌握上述结构及其运算的实现和性能特点,掌握各种排序和查找运算以及递归技术,能对给定的实际问题,建立准确的问题模型,设计有效的问题求解方法,选择合理的数据结构及其运算集,设计有效的算法。
三、教学学时分配《数据结构》课程理论教学学时分配表*理论学时包括讨论、习题课等学时。
《数据结构》课程实验内容设置与教学要求一览表四、教学内容和教学要求第一章绪论(2学时)(一)教学要求1.了解数据结构的各种基本概念和术语;2.了解数据类型和抽象数据类型的概念;3.理解算法的设计目标;4.掌握算法的时间复杂度概念和算法的时间复杂度分析方法。
(二)教学重点与难点教学重点:数据结构的逻辑结构、存储结构及数据的运算三方面的概念及相互关系教学难点:算法复杂度的分析方法。
(三)教学内容第一节什么是数据结构1.数据结构的定义2.逻辑结构类型3.存储结构类型4.数据结构和数据类型第二节算法及其描述1.什么是算法2.算法描述第三节算法分析1.算法设计的目标2.算法效率分析3.算法存储空间分析本章习题要点:基本概念、算法复杂度的分析方法第二章线性表(10学时)(一)教学要求1.理解线性表的逻辑结构和基本操作;2.理解线性表的顺序存储结构和实现方法;3.理解线性表的链式存储结构和实现方法;4.了解单循环链表和双向链表的概念和插入、删除等操作方法。
(二)教学重点与难点教学重点:顺序表和单链表上实现的各种基本算法及相关的时间性能分析。
教学难点:链表本质及其操作的实现算法、线性表相关的应用。
《数据结构》教学大纲
《数据结构》教学大纲一、课程简介《数据结构》是计算机科学与技术相关专业的基础课程之一。
本课程旨在通过理论与实践相结合的方式,培养学生具备良好的数据结构基础、灵活运用和设计数据结构的能力,并通过算法分析、问题求解等方式培养学生的编程思维和创新能力。
二、教学目标1. 理解数据结构的基本概念和原理,包括栈、队列、链表、树、图等基本数据结构的应用场景与实现。
2. 掌握数据结构的基本算法与操作,包括插入、删除、查找、排序等常用操作的实现与分析。
3. 培养学生良好的编程实践能力,能够灵活运用不同的数据结构解决实际问题。
4. 培养学生团队合作精神和沟通能力,能够与他人合作设计和实现复杂的数据结构与算法。
三、教学内容1. 数据结构基础1.1 数据结构与算法的关系1.2 抽象数据类型与数据结构1.3 算法复杂度与评估方法2. 线性结构2.1 线性表的基本概念与实现2.2 栈与队列的定义与应用2.3 数组与链表的对比与选择3. 树形结构3.1 树的基本概念与性质3.2 二叉树的存储与遍历3.3 二叉搜索树与平衡树的应用4. 图结构4.1 图的基本概念与表示方法4.2 图的遍历与连通性算法4.3 最短路径与最小生成树算法5. 排序与查找5.1 常用排序算法的实现与性能分析 5.2 二分查找算法与应用5.3 哈希表的概念与应用四、教学方法1. 理论讲解:通过授课方式向学生讲解数据结构的基本概念、原理和算法分析方法。
2. 实验实践:通过编写程序实践,巩固和加深学生对数据结构的理解与应用能力。
3. 课堂讨论:鼓励学生在课堂上提问和讨论问题,促进学生思维的活跃和沟通能力的培养。
4. 课程设计:结合实际案例,进行小组项目设计,培养学生团队合作和创新能力。
五、教学评价与考核1. 平时成绩:包括课堂讨论与实验成绩,在课堂上主动提问、积极参与实验的学生将获得较高成绩。
2. 作业与报告:包括编程作业、实验报告等,学生需要按时完成,并按要求展示实现结果与思路。
数据结构课程教学大纲
《数据结构》课程教学大纲(本科)(黑体小三)第一部分:大纲说明(黑体四号)一、课程的性质和任务(黑体小四)《数据结构》是计算机专业本、专科生的一门必修课程。
本课程介绍如何组织各种数据在计算机中的存储、传递和转换。
内容包括:数组、链接表、栈和队列、递归、树与森林、图、堆与优先级队列、集合与搜索结构、排序、索引与散列结构等。
课程采用面向对象的观点讨论数据结构技术,并以兼有面向过程和面向对象双重特色的C++语言作为算法的描述工具,强化数据结构基本知识和面向对象程序设计基本能力的双基训练。
为后续计算机专业课程的学习打下坚实的基础。
二、先修课程(黑体小四)高级语言程序设计(Pascal或C语言)、离散数学。
三、课程的教学基本要求(黑体小四)1、掌握重要数据结构的概念、使用方法及实现技术;2、学会做简单的算法分析,包括算法的时间代价和空间代价。
四、教学方法和教学形式建议(黑体小四)面授为主,进行必要的上机实验。
五、课程教学要求的层次(黑体小四)1、熟练掌握:要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其知识分析、设计和解答相关的应用问题。
2、掌握:要求学生能够较好地理解和掌握,并且能够做简单的分析。
3、了解:要求学生能够一般地了解的所学内容。
第二部分:教材初步方案一、学时分配课程教学总学时数为96学时,其中讲授学时72,实验24二、教学环节1、面授(宋体小四加粗)本课程是计算机专业基础课,内容多且带有一定的抽象性,学习起来有一定难度。
为保证教学效果,采取集中授课方式。
聘请有经验的教师担任主讲教师,尽可能利用多种媒体进行教学,使学生能够很快掌握课程的主要知识和解决问题的方法。
2、面授辅导或答疑(宋体小四加粗)本课程教学过程中,面授辅导和答疑是必不可少的教学环节。
应聘请有经验、认真负责的教师任教,以习题课、专题讨论或答疑的方式,对课程中的重要概念和典型问题的解决方法进行总结和深入讨论,巩固和加深课堂内学到的知识。
数据结构教学大纲
《数据结构》课程教学大纲一、课程基本概况课程名称:数据结构课程名称(英文):Data Structure课程编号:课程总学时:64(理论课50 ,实验课14 )课程学分:4课程分类:必修开设学期:第5学期适用专业:计算机网络工程先修课程:《集合论》、《图论》和《高级语言(结构或记录,指针)》。
后续课程:《数据库》、《编译原理》、《操作系统》等二、课程性质、目的和任务本课程系统地介绍线性表、栈、队列、字符串、数组、广义表、树、二叉树、图、查找表等几种数据结构的基本概念、操作及其典型应用的例子,通过课堂教学、课外练习和上机实习,使学生了解数据对象的特性,数据组织的基本方法,并初步具备分析和解决现实世界问题在计算机中如何表示和处理的能力以及培养良好的程序设计技能,为后续课程的学习和科研工作的参与打下良好的基础。
三、主要内容、重点及难点(一)理论部分第一章绪论基本要求:掌握相关的基本概念,算法五大要素,计算语句频度和估算算法时间复杂度的方法。
知识点:1.数据结构的基本概念2. 算法设计3.时间和空间复杂度第二章线性表基本要求:掌握线性表的逻辑结构,线性表的存储结构,线性表在顺序结构和链式结构上实现基本操作的方法,从时间和空间复杂度的角度比较线性表两种存储结构的不同特点及其适用场合。
知识点:1.线性表的逻辑结构2.线性表的存储结构及操作的实现3.一元多项式的表示4.习题讨论课第三章栈和队列基本要求:掌握栈和队列的特点,在两种存储结构上栈的基本操作的实现;熟练掌握循环队列和链队列的基本运算,掌握递归算法执行过程中栈状态的变化过程。
知识点:1.栈的定义、表示及实现2.表达式求值3.栈与递归过程4.队列的定义、表示及实现5.习题讨论课第四章串基本要求:掌握串的七种基本运算的定义,利用这些基本运算来实现串的其它各种运算的方法;掌握在顺序存储结构上实现串的各种操作的方法,KMP算法,熟悉NEXT函数和改进NEXT函数的定义和计算;理解串名的存储映象和在堆存储结构实现串操作的方法。
数据结构课程教学大纲
课程
编号
01025016
01825064
01826064
课程
名称
(中文)数据结构
(英文)Data Structures
课
程
基
本
情
况
1.学分:4学时:40(课内学时:40实验学时:)
2.课程性质:学科基础必修课专业选修课
3.适算机原理》、《C语言程序设计》、《高等数学》
1.掌握线性表的基本概念。
2.掌握线性表的顺序存储结构和链式存储结构。
3.掌握特殊的线性表-栈和队列。
4.了解循环线性链表和双向链表。
(三)串(4学时)
1.了解串的基本概念和存储结构
2.了解串的基本运算
3.掌握串的模式匹配
(四)数组和广义表(4学时)
1.掌握数组顺序存储和链式存储结构
2.了解广义表的定义及其应用
配套
实践
环节
说明
大纲
编写
责任
人
信息与计算科学
(教研组)
戴筠(签名)
2001年06月30日
系
审核
意见
数学
(系)
顾桂定(签名)
2001年06月30日
学院
审核
意见
张金仓
(签名)
上海大学理学院(公章)
年月日
要求学生能够掌握数据的逻辑结构、物理结构以及各种结构所定义的运算和应用。对同一种逻辑结构的数据,讨论其不同的物理结构和相应的有关算法,掌握查找和排序的各种方法。
课
程
内
容
及
学
时
分
配
课
程
内
容
及
学
《数据结构》课程教学大纲
《数据结构》课程教学大纲一、课程概述数据结构是计算机科学与技术专业的重要基础课程之一。
本课程旨在介绍数据结构的基本概念、常用数据结构及其应用。
通过本课程的学习,学生应具备设计和实现基本数据结构的能力,能够分析并解决实际问题中的数据组织与处理需求。
二、教学目标1. 掌握数据结构的基本概念和分类。
2. 理解不同数据结构的特点、存储结构和操作方式。
3. 能够应用各类数据结构解决实际问题,并分析其性能。
4. 具备编写高质量代码的能力,考虑代码的可读性和可维护性。
5. 培养团队合作意识和解决问题的能力。
三、教学内容1. 数据结构基础1.1 数据结构的定义和作用1.2 数据结构的分类及常用术语1.3 数据结构的表示与实现方式2. 线性结构2.1 线性结构的概念和特点2.2 线性表的顺序存储结构和链式存储结构2.3 线性表的基本操作(插入、删除、查找)2.4 栈和队列的定义、基本操作以及应用3. 非线性结构3.1 树形结构的概念和特点3.2 二叉树及其存储结构(顺序存储和链式存储)3.3 二叉树的遍历(先序、中序、后序)3.4 树与森林的转换和应用4. 图结构4.1 图的定义和基本术语4.2 图的存储结构(邻接矩阵和邻接表)4.3 图的遍历(深度优先搜索和广度优先搜索)4.4 最小生成树和最短路径算法5. 查找算法5.1 查找的基本概念和分类5.2 顺序查找算法5.3 二分查找算法5.4 哈希查找算法6. 排序算法6.1 排序的基本概念和分类6.2 内部排序算法(插入排序、冒泡排序、选择排序、快速排序、归并排序)6.3 外部排序算法四、教学方法1. 集中讲述与课堂演示相结合的教学方法。
2. 利用多媒体技术展示数据结构的基本概念、实例和操作过程。
3. 提供编程实践的机会,让学生独立设计和实现各类数据结构。
4. 组织小组讨论和团队合作,解决数据结构相关问题。
五、考核方式1. 平时成绩包括课堂表现、作业、实验和参与度。
《数据结构》课程教学大纲
《数据结构》课程教学大纲一、课程编号:0503000二、课程名称:数据结构(32学时)Data Structures三、先修课程:大学计算机基础、C语言程序设计四、适用专业:机械工程及自动化、工业设计、测控技术与仪器、物流工程五、课程教学目的数据结构是计算机学科重要的综合性专业基础课程之一,是非数值计算程序设计的基础,也是设计和实现各种应用软件的重要基础。
通过本课程的学习使学生学会分析和研究计算机加工对象的特性,选择合适的数据结构和存储表示,以及编制相应的实现算法,并对算法的效率进行简要分析和讨论。
六、课程教学基本要求1.了解数据结构的基本概念;掌握计算语句频度和估算时间复杂度的方法。
2.了解线性表的逻辑结构特性,熟练掌握在顺序表及各种链表结构中实现线性表的基本方法。
3.熟练掌握栈和队列的顺序表示、链表表示以及相应操作的实现,并能正确应用它们解决实际问题。
4.理解串的基本操作的定义,掌握在串的顺序存储结构上实现串的各种操作的方法。
5.理解数组和广义表的概念,了解特殊矩阵的压缩存储方法。
6.了解树和森林的概念和性质;熟练掌握二叉树的结构特性及二叉树的遍历方法;掌握建立赫夫曼树和赫夫曼编码的方法。
7.理解图的基本概念,熟练掌握图的各种存储结构及实现、两种搜索路径的遍历;理解最小生成树、最短路径、AOV网与拓扑排序、AOE网与关键路径。
8.熟练掌握顺序表、二叉排序树和哈希表的查找算法和性能分析。
9.熟练掌握插入排序、交换排序、选择排序、归并排序的方法及其性能分析方法;了解基数排序方法及其性能分析方法。
七、教学基本内容及学时分配1.绪论2学时1.1 数据结构概念1.2 算法分析方法2.线性表5学时2.1 线性表的类型定义2.2 线性表的顺序表示和实现2.3 线性表的链式表示和实现2.4* 线性表的其他存储方式(循环链表、双向链表、静态链表、间接寻址)2.5* 线性表应用举例3.栈和队列3学时3.1 栈和队列的定义及特点3.2 栈的顺序存储表示和链式存储表示3.3* 栈与递归的实现3.4 队列的顺序存储表示和链式存储表示3.5 栈和队列的应用举例4.串2学时4.1 串类型的定义4.2 串的表示和实现4.3 串的模式匹配算法、*模式匹配的改进算法*5.数组和广义表2学时5.1 多维数组(数组的定义、存储及寻址)5.2 矩阵的压缩存储(特殊矩阵的压缩存储、稀疏矩阵的压缩存储)5.3 广义表的概念、表示及基本操作、广义表的存储结构6.树5学时6.1 树的定义和基本术语6.2 二叉树(二叉树的定义、性质和存储结构)6.3 遍历二叉树、*线索二叉树6.4* 树和森林(树的存储结构、森林与二叉树的转换、树和森林的遍历)6.5 赫夫曼树及其应用(赫夫曼树和赫夫曼编码)7.图5学时7.1 图的逻辑结构(图的定义和基本术语、*图的抽象数据类型、图的遍历)7.2 图的存储结构及实现(邻接矩阵、邻接表、十字链表、邻接多重表、*边集数组、图的存储结构的比较)7.3 图的连通性(无向图的连通性、有向图的连通性、生成树和*生成森林)7.4 图的应用举例(最小生成树、最短路径、*AOV网与拓扑排序、*AOE网与关键路径)8.查找4学时8.1 概述(基本概念、查找算法的性能)8.2 线性表的查找技术(顺序查找、折半查找、*斐波那契查找)8.3 树表查找(二叉排序树、*平衡二叉树)8.4 哈希表的查找(概念、哈希函数的设计、处理冲突的方法、哈希查找的性能分析、8.5* 开散列表与闭散列表的比较)9.排序4学时9.1 概述(基本概念、排序算法的性能)9.2 插入排序(直接插入排序、希尔排序)9.3 交换排序(起泡排序、快速排序)9.4 选择排序(简单选择排序、堆排序)9.5 归并排序(二路归并排序的非递归实现、二路归并的递归实现)9.6* 基数排序八、教学重点、难点教学重点:线性表、栈、树和二叉树、图、查找、排序教学难点:递归、串的改进模式匹配算法、线索二叉树、平衡二叉树、图的应用九、使用教材名称、作者及出版社数据结构(用C语言版),严蔚敏、吴伟民编著,2006年3月,清华大学出版社执笔人:杨福兴。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程教学大纲(三套)《数据结构》课程教学大纲(36/36课时)一、课程的性质和任务数据结构是计算机及应用专业中一门重要的专业基础课程,在计算机软件的各个领域中均会使用到数据结构的有关知识。
当用计算机来解决实际问题时,就要涉及到数据的表示及数据的处理,而数据表示及数据处理正是数据结构课程的主要研究对象,通过这两方面内容的学习,为后续课程,特别是软件方面的课程打开厚实的基础。
因此,数据结构课程在计算机应用专业中具有举足轻重的作用。
本课程的任务是:在基础方面,要求学员掌握常用数据结构的基本概念及其不同的实现方法;在技能方面,通过系统学习能够在不同存储结构上实现不同的运算,并对算法设计的方式和技巧有所体会。
总言之,使应用者较全面的掌握各种常用的数据结构,提高运用数据结构解决实际问题的能力。
二、课程的基本要求本课程的教学基本要求如下:本课程要求理论必须与上机实践操作相结合,多做题和调试算法,实现算法。
实践项目只利用课堂时间是不够的,必须提前布置给学生。
通过本课程的学习与实践,学生应达到:1、掌握数据结构的基本概念和基本理论;2、熟练掌握顺序表、链表、队列、栈、树以及二叉树、图等基本数据结构的设计和分析;3、熟练地掌握常用算法(递归、遍历、查找、排序)的知识;4、能对所求解的问题进行分析,抽象出逻辑结构,选择合适的存储结构,定义所需的运算,设计相应的算法;5、对算法进行分析和评价。
三、教学内容(一)理论教学(二)实践环节四、课时分配《数据结构》课程共4学分,课内72学时,其中理论课36学时,上机36学时。
五、大纲说明本课程必须理论与上机实践操作相结合,并要教、学、练相结合,讲清基本概念,指出知识要点、重点和难点,并通过实例分析解决算法难点;要求学生认真预习、认真听课、认真思索、认真做实验,通过对算法的编程实现来提高学生的理解和动手能力。
由于内容多、难度大,要特别注重精讲多练,实践项目一定要提前布置给学生,启发学生独立思考、调动学生的主观能动性,鼓励学生多提问题、共同探讨和解决问题。
重点:线性表的存储和运算;栈和队列的运算;二叉树的遍历和线索,哈夫曼树及应用,二叉排序树;图的生成树,最短路径;散列查找和树表查找;几种排序算法及排序过程。
难点:链表的运算;后序遍历二叉树;线索二叉树;最短路径等。
六、考核方式理论考核与实践考核相结合,理论考核(主要考基本概念、基本理论、基本算法, 闭卷考试)占40%;实践考核(主要是平时布置的实践项目)占40%;平时(出勤、作业、课堂提问等)占20%。
七、参考教材教材:《数据结构(C语言版)》,邵增珍杨品林编著,清华大学出版社,2012年9月。
参考教材:1.《数据结构---用C语言描述》唐策善、李龙澍、黄刘生高等教育出版社 19952.《数据结构(C语言篇)习题与解析》李春葆清华大学出版社 20003.《数据结构(C语言版)》严蔚敏、吴伟民清华大学出版社 1997《数据结构A》课程教学大纲(56/16课时)Data Structure A课程代码:课程性质:专业基础理论课/必修适用专业:信息计算、信息安全开课学期:5总学时数:72 总学分数:4.5编写年月:修订年月:执笔:高学军、刘科峰、李小英数据结构是信息与计算科学专业的一门重要专业基础课程。
当用计算机来解决实际问题时,就要涉及到数据的表示及数据的处理,而数据表示及数据处理正是数据结构课程的主要研究对象,通过这两方面内容的学习,为后续课程,特别是软件方面的课程打下了厚实的知识基础,同时也提供了必要的技能训练。
因此,数据结构课程在信息与计算科学专业中具有举足轻重的作用。
二、课程教学内容及学时分配第1章绪论(4学时)理解数据、数据元素和数据项的概念及其相互间的关系。
理解数据结构的逻辑结构、存储结构的联系与区别,以及在数据结构上施加的运算及其实现。
掌握简单的算法分析方法。
本章知识点为:数据、数据元素、数据对象、数据结构、存储结构和数据类型等概念术语的确定含义;抽象数据类型的定义、表示和实现方法;描述算法的类C语言;算法设计的基本要求以及从时间和空间角度分析算法的方法。
第2章线性表(10学时,2个学时实验上机)理解线性表的定义及其运算。
理解顺序表和链表的定义、组织形式、结构特征和类型说明,掌握在这两种表上实现的插入、删除和按值查找的算法。
了解循环链表、双向(循环)链表的结构特点和在其上施加的插入、删除等操作。
掌握稀疏多项式在线性表的两种存储结构上的实现方法。
本章知识点为:线性表的逻辑结构定义、抽象数据类型定义和各种存储结构的描述方法;在线性表的两类存储结构(顺序的和链式的) 上实现基本操作;稀疏多项式的抽象数据类型定义、表示和加法的实现。
第3章栈和队列(6学时,2个学时实验上机)理解栈和队列的定义、特征及在其上所定义的基本运算。
掌握在两种存储结构上对栈和队列所施加的基本运算的实现。
熟练掌握循环队列和链队列的基本操作实现算法,尤其是队满和队空的描述方法。
本章知识点为:抽象数据类型栈的定义;栈的表示和实现;栈的应用;抽象数据类型队列的定义;链队列;循环队列。
第4章串(4学时,2个学时实验上机)熟悉串的七种基本操作的定义,并能利用这些基本操作来实现串的其它各种操作的方法。
熟练掌握在串的定长顺序存储结构上实现串的各种操作的方法。
掌握串的堆存储结构以及在其上实现串操作的基本方法。
本章知识点为:串的数据类型定义;串的三种存储表示:定长顺序存储结构、块链存储结构和堆分配存储结构;串的各种基本操作的实现及其应用;第5章数组和广义表(6学时,2个学时实验上机)了解数组的两种存储表示方法,并掌握数组在以行为主的存储结构中的地址计算方法。
掌握对特殊矩阵进行压缩存储时的下标变换公式。
了解稀疏矩阵的两种压缩存储方法的特点和适用范围,领会以三元组表示稀疏矩阵时进行矩阵运算采用的处理方法。
掌握广义表的结构特点及其存储表示方法。
本章知识点为:数组的类型定义和表示方式;特殊矩阵和稀疏矩阵的压缩存储方法及运算的实现;广义表的逻辑结构和存储结构和广义表的操作。
第6章树和二叉树(12学时,2个学时实验上机)深刻理解树的定义、性质及其存储方法,熟练掌握二叉树的二叉链表存储方式、结点结构和类型定义,并能画出给定二叉树的二叉链表的结构示意图;理解并掌握二叉树的三种遍历方法,并能写出该三种遍历的算法;会完成树、森林与二叉树间的相互转换;理解哈夫曼树的构造方法,并能对给定的数据集合构造出哈夫曼树。
本章知识点为:二叉树的定义、性质和存储结构;二叉树的遍历和线索化以及遍历算法的各种描述形式;树和森林的定义、存储结构、与二叉树的转换、遍历;树的多种应用。
第7章图(12学时,2个学时实验上机)理解图的基本概念及术语,掌握图的两种存储结构(邻接矩阵和邻接表)的表示方法;熟练掌握图的两种遍历(深度优先搜索遍历和广度优先搜索遍历)的算法思想、步骤,并能列出在两种存储结构上按上述两种遍历算法得到的序列;理解最小生成树的概念,能按Prim算法构造最小生成树;了解并掌握拓扑排序、关键路径、最短路径的算法思想。
本章知识点为:图的定义和术语;图的四种存储结构:数组表示法、邻接表、十字链表和邻接多重表;图的两种遍历策略:深度优先搜索和广度优先搜索;图的连通性:连通分量和最小生成树;拓扑排序和关键路径;两类求最短路径问题的解法。
第8章查找(10学时,2个学时实验上机)了解查找的基本思想及查找成功和不成功的概念,掌握在顺序表、有序表、索引表、散列表等上的查找方法和算法,并能求出相应的平均查找长度。
本章知识点为:讨论查找表(包括静态查找表和动态查找表)的各种实现方法:顺序表、有序表、树表和哈希表;平均查找长度的讨论。
第9章内部排序(8学时,2个学时实验上机)了解排序的基本思想和基本概念,理解和掌握插入排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序和基数排序的基本思想、步骤及算法。
本章知识点为:讨论比较各种内部排序方法,插入排序、交换排序、选择排序、归并排序和基数排序的基本思想、算法特点、排序过程以及它们的时间复杂度分析。
在每类排序方法中,又从简单方法入手,重点讨论性能先进的高效方法。
三、课程教本课程是信息与计算科学专业的重要专业基础课,计算机科学各领域及有关的系统和应用软件都要用到各种数据结构。
在教学方法上采用课堂讲授,课后自学,课堂讨论等教学形式。
(一)课堂讲授本课程属于基础理论课程。
在传授知识原理的前提下,配合实际应用例子,由浅入深善于诱导,使学生从被动吸收知识的状态下,转化到主动索取知识的状态中来,并采用多媒体辅助教学,加大课堂授课的知识含量。
注重培养学生的学习兴趣,提高学生的基本素质。
(二)课后自学为了培养学生整理归纳,综合分析和处理问题的能力,每章都安排一部分内容,课上教师只给出自学提纲,不作详细讲解,课后学生自学。
(三)课堂讨论课堂讨论的目的是活跃学习气氛,开拓思路。
教师应认真组织,安排重点发言,充分调动每一名同学的学习积极性,做好总结。
(四)课外作业为了让学生巩固所学的知识,每章都布置一定数量课外作业。
(五)实验用C语言或C++语言完成一些算法设计题。
培养学生的算法设计能力和程序设计能力。
总评成绩:平时作业占30%,闭卷考试占70%。
先修课程:离散数学,C++面向对象程序设计等。
后续课程:操作系统,数据库原理等。
五、建议教材与教学参考书[1] 严蔚敏吴伟民编著,数据结构(C语言版),北京:清华大学出版社, 2004[2] 严蔚敏吴伟民编著,数据结构题集(C语言版),北京:清华大学出社,2004[3] Willan Ford,Willian Topp. Data Structures with C++. New Jersey:Prentice Hall Inc, Adivision Simon & Schuster Company,1996(数据结构——C++语言描述.北京:清华大学出版社,1997)[4] 徐孝凯,数据结构实用教程(C/C++描述),北京:清华大学出版社,1999[5] 陈慧南.数据结构(使用C++语言描述),南京:东南大学出版社,2001[6] 殷人昆,陶永雷,谢若阳等.数据结构(用面向对象方法与C++描述),北京:清华大学出版社,1999《数据结构》课程教学大纲(36/18课时)课程编号:课程名称:数据结构英文名称:Data Structure课程类型:专业必修课总学时:54 理论学时:36 实验学时:18适用对象:课程简介:数据结构主要研究数据的各种逻辑结构和存储结构,以及对数据的各种操作。
主要有三个方面:数据的逻辑结构;数据的物理存储结构;对数据的操作(或算法)。
通常,算法的设计取决于数据的逻辑结构,算法的实现取决于数据的物理存储结构及该算法的时、空复杂度分析。