《数据结构》课程教学大纲
《数据结构》课程教学大纲(三套)
数据结构课程教学大纲(三套)《数据结构》课程教学大纲(36/36 课时)一、课程的性质和任务数据结构是计算机及应用专业中一门重要的专业基础课程,在计算机软件的各个领域中均会使用到数据结构的有关知识。
当用计算机来解决实际问题时,就要涉及到数据的表示及数据的处理,而数据表示及数据处理正是数据结构课程的主要研究对象,通过这两方面内容的学习,为后续课程,特别是软件方面的课程打开厚实的基础。
因此,数据结构课程在计算机应用专业中具有举足轻重的作用。
本课程的任务是:在基础方面,要求学员掌握常用数据结构的基本概念及其不同的实现方法;在技能方面,通过系统学习能够在不同存储结构上实现不同的运算,并对算法设计的方式和技巧有所体会。
总言之,使应用者较全面的掌握各种常用的数据结构,提高运用数据结构解决实际问题的能力。
二、课程的基本要求本课程的教学基本要求如下:本课程要求理论必须与上机实践操作相结合,多做题和调试算法,实现算法。
实践项目只利用课堂时间是不够的,必须提前布置给学生。
通过本课程的学习与实践,学生应达到:1、掌握数据结构的基本概念和基本理论;2、熟练掌握顺序表、链表、队列、栈、树以及二叉树、图等基本数据结构的设计和分析;3、熟练地掌握常用算法(递归、遍历、查找、排序)的知识;4、能对所求解的问题进行分析,抽象出逻辑结构,选择合适的存储结构定义所需的运算,设计相应的算法;5、对算法进行分析和评价。
三、教学内容(一)理论教学(二)实践环节四、课时分配《数据结构》课程共4学分,课内72学时,其中理论课36学时,上机36学时。
五、大纲说明本课程必须理论与上机实践操作相结合,并要教、学、练相结合,讲清基本概念,指出知识要点、重点和难点,并通过实例分析解决算法难点;要求学生认真预习、认真听课、认真思索、认真做实验, 通过对算法的编程实现来提高学生 由于内容多、 难度大, 要特别注重精讲多练, 实践项目一定 要提前布置给学生, 调动学生的主观能动性,鼓励学生多提 问题、共同探讨和解决问题。
《数据结构》课程教学大纲
《数据结构》课程教学大纲课程类别:专业基础课适用专业:计算机应用技术适用层次:高起专适用教育形式:成人教育考核形式:考试所属学院:计算机科学与技术学院先修课程:C语言程序设计一、课程简介《数据结构》课程是计算机专业的核心基础课程,是一门理论与实践相结合的课程,整个计算机专业教学体系中处于举足轻重的地位。
数据结构是程序设计(特别是非数值计算的程序设计)的基础,也是设计和实现编译程序、操作系统、数据库系统及其它系统程序和大型应用程序的重要基础。
基于该门课程的重要性,现在该课程已经是计算机相关专业研究生考试必考专业课之一,是反映学生数据抽象能力、编程能力的重要体现。
二、课程学习目标通过本课程的学习,使学生具备下列能力:1、能够理解常用数据结构和算法的基本思路、思考方法、使用场合以及算法设计中考虑的各种因素,能运用于非数值型计算问题的建模和算法设计;深入体会经典算法的思路和分析解决问题的方法,能运用于解决其他领域的相关问题。
2、能够针对基本数据结构和算法方面的特定问题进行分析或推导,分析相应的逻辑结构、选择合适的物理结构或给出问题的解;能对简单算法进行复杂度分析。
3、能针对特定问题需求和给定的数据结构进行算法设计。
三、与其他课程的关系数据结构是计算机及其相关专业的专业基础课,是《操作系统》、《数据库原理》等课程的先导课。
四、课程主要内容和基本要求第1单元数据结构及算法性能分析『知识点』本章作为本课程的绪论部分,主要介绍数据结构课程的研究内容,以及数据结构课程中用到的与课程内容相关的概念和基本术语。
另外,在本章还重点介绍了算法的概念、算法的特性以及算法设计的基本要求,分析算法的方法。
本章重点讲解数据结构的相关概念以及算法及其算法分析。
『基本要求』1、识记:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、数据类型、抽象数据类型等基本概念。
2、领会:顺序存储结构和链式存储结构。
3、简单应用:能够实现顺序存储结构和链式存储结构,并在简单问题中应用。
《数据结构》课程教学大纲(电子信息、自动化、通信专业)
《数据结构》课程教学大纲(Data Structure)一、基本信息课程编号:B3132312课程类别:学科基础选修课适用层次:本科适用专业:自动化,电子信息工程,通信工程开课学期:第五学期总学分:2总学时:32学时(理论课24学时,实验课8学时)考核方式:考查二、课程教育目标本课程是机电类各专业的学科基础选修课。
通过本课程的学习,学生可以掌握数据结构的基本知识,学会使用合理的数据组织和清晰的算法编写效率更高的程序,积累编写复杂程序的经验,为从事软件设计工作打下坚实基础。
三、教学内容与要求1.理论课教学内容(1)绪论教学内容:数据结构的原则和地位,抽象数据类型和数据结构,算法和算法的效率。
基本要求:使学生了解学习数据结构的必要性,掌握数据结构的定义。
要求学生深刻认识该课程的重要地位。
教学重点:数据结构的定义,算法。
教学难点:算法。
(2)算法分析教学内容:算法基本概念,最佳、最差和平均情况,渐近分析和程序运行时间的计算,空间代价,时间和空间权衡。
基本要求:本章的目的在于使学生了算法分析的方法 ,要求学生掌握时间和空间权衡的意义。
教学重点:算法分析的方法。
教学难点:算法分析的方法。
(3)线性表、栈和队列教学内容:线性表,栈和队列等概念。
基本要求:本章的目的是使学生了解线性表、栈和队列及其实现方式与应用。
教学重点:线性表,栈和队列教学难点:线性表,栈和队列的程序设计。
(4)二叉树教学内容:二叉树定义及主要特征,周游二叉树,二叉树的实现,二叉检索树和堆的概念与应用。
基本要求:本章的目的是使学生了解二叉树、二叉检索树和堆及其实现方式,并能应用。
教学重点:二叉树。
教学难点:二叉树和堆的应用。
(5)树教学内容:树的定义与术语,父指针表示法,树的实现,树的顺序表示法。
基本要求:本章的目的是使学生了解树及其实现方式并应用。
教学重点:树的实现。
教学难点:树的程序实现。
(6)图教学内容:术语与表示法,图的实现,图的周游,最短路径问题。
《数据结构》教学大纲
《数据结构》教学大纲一、课程简介《数据结构》是计算机科学与技术相关专业的基础课程之一。
本课程旨在通过理论与实践相结合的方式,培养学生具备良好的数据结构基础、灵活运用和设计数据结构的能力,并通过算法分析、问题求解等方式培养学生的编程思维和创新能力。
二、教学目标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. 作业与报告:包括编程作业、实验报告等,学生需要按时完成,并按要求展示实现结果与思路。
数据结构教学大纲
《数据结构》课程教学大纲一、课程基本概况课程名称:数据结构课程名称(英文):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日
学院
审核
意见
张金仓
(签名)
上海大学理学院(公章)
年月日
要求学生能够掌握数据的逻辑结构、物理结构以及各种结构所定义的运算和应用。对同一种逻辑结构的数据,讨论其不同的物理结构和相应的有关算法,掌握查找和排序的各种方法。
课
程
内
容
及
学
时
分
配
课
程
内
容
及
学
数据结构课程教学大纲
《数据结构》课程教学大纲课程名称:数据结构(Data Structures)课程编号:CX414120A学分:4总学时:64(48+16)适用专业:计算机科学与技术先修课程:离散数学,C语言程序设计一、课程的性质、目的与任务数据结构是计算机科学与技术专业的一门专业基础课程。
通过课堂教学、课外练习和上机实习,使学生了解数据对象的特性及数据组织的基本方法,并初步具备分析和解决现实世界问题在计算机中的表示方法和及其处理的能力,让学生培养良好的程序设计技能,为后续课程的学习和科研工作的参与打下良好的基础。
二、教学基本要求✧了解线性表、栈、队列、字符串、数组、广义表、树、二叉树、图、查找表等几种数据结构的特性及数据组织的基本方法;✧理解各数据结构上的基础操作方法及复杂度的分析方法;✧掌握各数据结构及查找、排序的基本理论和基本知识,使学生具备从数据结构的角度出发,开发设计出较复杂软件的能力。
三、教学内容第一章绪论(4学时)1.数据,数据类型,数据结构(逻辑结构和存储结构)(1学时)2.数据结构的主要运算与基础知识(1学时)3.算法复杂度分析(2学时)算法的定义、算法的描述、算法设计的要求、算法分析初步第二章线性表(4学时)1.线性表的定义和基本运算(0.5学时)2.线性表的存储结构和实现(3学时)向量(顺序)存储结构、链式存储结构(单链表、双向链表和循环链表)3.链式表的应用(多项式的表示与相加) (0.5学时)第三章栈和队列(4学时)1.栈(2学时)栈的定义和基本运算、存储结构和实现、应用举例及栈与递归过程2.队列(2学时)队列的定义和基本运算、存储结构和实现及双端队列、输入和输出受限队列第四章串(3学时)1.串的定义、运算和存储结构(0.5学时)2.串的基本运算的实现(2.5学时)串的匹配、KMP算法及NEXT函数第五章数组和广义表(3学时)1.数组的定义和运算(0.5学时)2.数组的顺序存储结构及存储地址的计算(1学时)3.矩阵(特殊矩阵、稀疏矩阵)的压缩存储(1学时)4.广义表的定义、基本运算和存储结构(0.5学时)第六章树和二叉树(8学时)1.树的定义、基本运算和存储结构(1学时)2.二叉树的定义、性质和存储结构(顺序、链式) (1.5学时)3.二叉树的遍历和线索二叉树(2学时)4.树、二叉树与森林的转换;树和森林的遍历(1.5学时)5.二叉树的应用(2学时)二叉排序树、Huffman树第七章图(8学时)1.图的定义和术语(1学时)2.图的存储结构(2学时)3.图的遍历(1学时)4.图的连通性问题(连通分量、生成树、最小生成树) (1学时)5.DAG图及其应用(2学时)拓扑排序、关键路径6.最短路径(1学时)单源最短路径、每对顶点间的最短路径第九章查找(8学时)1.概述(0.5学时)2.顺序表的查找(顺序查找、折半查找、分块查找) (2学时)3.树表的查找(3学时)二叉排序树、平衡二叉树、B_树和B+树4.哈希表(Hash) (2.5学时)基本概念、Hash函数与Hash表的构造方法、Hash表的查找和冲突处理方法第十章内部排序(6学时)1.概述(0.5学时)2.插入排序(直接插入排序、折半插入排序、2-路插入排序、Shell排序) (1.5学时)3.选择排序(直接选择排序、树型选择排序、堆排序) (1.5学时)4.交换排序(冒泡排序、快速排序) (1.5学时)5.归并排序(2-路归并排序) (0.5学时)6.基数排序(0.5学时)实验内容:(8学时)实验一、指针与结构体操作实验二、线性表及其应用实验三、栈与队列操作实验四、串及其应用实验五、数组及其应用实验六、二叉树建树与遍历实验七、图的基本操作实验八、查找与排序四、教学参考书[1]严蔚敏等,《数据结构》(第二版)清华大学出版社,1993[2]严蔚敏等,《数据结构题集》,1995[3] William Ford,William Topp,《Data Structure with C++》清华大学出版社Prentice Hall联合出版,1996五、说明实验内容具体内容及要求见实验指导书。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》课程教学大纲(本科)(黑体小三)第一部分:大纲说明(黑体四号)一、课程的性质和任务(黑体小四)《数据结构》是计算机专业本、专科生的一门必修课程。
本课程介绍如何组织各种数据在计算机中的存储、传递和转换。
内容包括:数组、链接表、栈和队列、递归、树与森林、图、堆与优先级队列、集合与搜索结构、排序、索引与散列结构等。
课程采用面向对象的观点讨论数据结构技术,并以兼有面向过程和面向对象双重特色的C++语言作为算法的描述工具,强化数据结构基本知识和面向对象程序设计基本能力的双基训练。
为后续计算机专业课程的学习打下坚实的基础。
二、先修课程(黑体小四)高级语言程序设计(Pascal或C语言)、离散数学。
三、课程的教学基本要求(黑体小四)1、掌握重要数据结构的概念、使用方法及实现技术;2、学会做简单的算法分析,包括算法的时间代价和空间代价。
四、教学方法和教学形式建议(黑体小四)面授为主,进行必要的上机实验。
五、课程教学要求的层次(黑体小四)1、熟练掌握:要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其知识分析、设计和解答相关的应用问题。
2、掌握:要求学生能够较好地理解和掌握,并且能够做简单的分析。
3、了解:要求学生能够一般地了解的所学内容。
第二部分:教材初步方案一、学时分配课程教学总学时数为96学时,其中讲授学时72,实验24二、教学环节1、面授(宋体小四加粗)本课程是计算机专业基础课,内容多且带有一定的抽象性,学习起来有一定难度。
为保证教学效果,采取集中授课方式。
聘请有经验的教师担任主讲教师,尽可能利用多种媒体进行教学,使学生能够很快掌握课程的主要知识和解决问题的方法。
2、面授辅导或答疑(宋体小四加粗)本课程教学过程中,面授辅导和答疑是必不可少的教学环节。
应聘请有经验、认真负责的教师任教,以习题课、专题讨论或答疑的方式,对课程中的重要概念和典型问题的解决方法进行总结和深入讨论,巩固和加深课堂内学到的知识。
面授辅导或答疑安排两周一次为宜。
3、自学与练习(宋体小四加粗)自学是获取知识的重要手段。
教师讲课只是起到抛砖引玉的作用,关键还在于学生的自学。
为达到自学的效果,除读懂教科书中所讲内容外,还需大量做题。
其目的是要通过做题弄懂、加深对概念的理解,提高程序设计,解决问题的能力。
为此,安排一定的实验上机学时。
要求学生珍惜实验机时,真正做到学有所获。
学生在上机做实验前,应事先将程序、调试数据、上机操作顺序准备好,并提前使用这些调试数据人工执行过。
目的是提高上机的效率和成功率,严禁抄袭或拷贝他人的成果,自觉培养科学、严谨的作风。
此部分从原大纲中删去:在最后要求每位学生完成一个综合作业,要求事先写出预习报告,对需要完成的任务进行任务分解,对程序体系结构和模块结构设计、采用的调试数据、上机操作过程进行描述,事后进行整理,写出实习报告。
报告内容包括预习报告的全部修改后的内容,再加上实验过程遇到那些问题,这些问题如何解决,最后实习的成果等内容。
除学校提供的时间外,要求课外学生利用自己可能拥有的计算机条件,完成更多的练习,不通过大量的实践,能力和知识水平得不到有效得提高。
4、考试(宋体小四加粗)考试是对学生掌握知识水平的检验。
本着多练多考的原则,可以再平时多做一些小考。
要求考试内容紧扣大纲要求,既要能够检验学生的掌握情况,又要体现水平。
因此,不要出难题、怪题,但也不要过于简单,适当有一些编程题。
期末考试学生的本课程成绩按平时作业满分20分,期末考试满分80分分配,合计计算。
第三部分教学内容和教学要求(黑体四号)一、数据结构基本概念及简单的算法分析 3学时(黑体小四)1、教学内容:(宋体小四加粗)什么是数据结构抽象数据类型及面向对象概念:数据类型;数据抽象与抽象数据类型;面向对象的概念;用于描述数据结构的语言数据结构的抽象层次算法定义性能分析与度量:算法的性能标准;算法的后期测试;算法的事前估计;空间复杂度度量;时间复杂度度量;时间复杂度的渐进表示法;渐进的空间复杂度2、教学要求:(宋体小四加粗)了解:什么是数据、数据对象、数据元素、数据结构、数据的逻辑结构与物理结构、逻辑结构与物理结构间的关系了解:什么是数据类型、抽象数据类型、数据抽象和信息隐蔽原则。
了解什么是面向对象了解:算法的定义、算法的特性、算法的时间代价、算法的空间代价掌握:用C++语言描述算法的方法,能够使用C++语言编写程序二、数组 3学时(黑体小四)1、教学内容:(宋体小四加粗)作为抽象数据类型的数组:数组的定义和初始化;作为抽象数据类型的数组;数组的顺序存储方式顺序表:顺序表的定义和特点;顺序表的类定义;顺序表的查找、插入和删除;使用顺序表的事例字符串:字符串的抽象数据类型;字符串操作的实现;字符串的模式匹配2、教学要求:(宋体小四加粗)了解:线性表的逻辑结构特性,以及线性表的两种存储实现方式了解:作为抽象数据类型的数组的定义,数组的按行顺序存储与按列顺序存储。
熟练掌握:顺序表的定义与实现,包括搜索、插入、删除算法的实现及其平均比较次数的计算,掌握应用顺序表作为集合的简单操作了解:稀疏矩阵的定义及其数组实现熟练掌握:字符串的定义及实现三、链表 3学时(黑体小四)1、教学内容:(宋体小四加粗)单链表:单链表的结构;单链表的类定义;单链表中的插入与删除;带表头结点的单链表;用模板定义的单链表类;静态链表循环链表:循环链表的类定义;用循环链表解约瑟夫问题;多项式及其相加:多项式的类定义;多项式的加法双向链表2、教学要求:(宋体小四加粗)了解:链表与数组一样,是一种实现级结构。
有动态链表和静态链表之分了解:链表有单链表、循环单链表、双向链表之分了解:单链表的结构、特点掌握:单链表的类定义、构造函数、单链表的插入与删除算法了解:带表头结点的单链表的优点和类定义及相应操作的实现熟练掌握:用模板定义的单链表类了解:循环链表的特点,循环链表的类定义,以及用循环链表解决问题的方法掌握:双向链表的特点,双向链表的类定义及相关操作的实现,用双向链表解决问题的方法。
四、栈和队列 3学时(黑体小四)1、教学内容:(宋体小四加粗)栈:栈的抽象数据类型;栈的顺序存储表示;栈的链接存储表示表达式求值:中缀表达式求值;中缀表示到后缀表示的转换队列:队列的抽象数据类型;队列的顺序存储表示;队列的链接存储表示;队列的应用举例优先级队列:优先级队列的定义;优先级队列的存储表示2、教学要求:(宋体小四加粗)熟练掌握:栈的定义、特性和栈的抽象数据类型,栈的顺序表示、链表表示以及相应操作的实现。
特别注意栈空和栈满的条件了解:在表达式计算时栈是如何使用的,重点了解用后缀表示计算表达式及中缀表示改后缀表示的方法和算法思路熟练掌握:队列的定义、特性和队列的抽象数据类型,队列的顺序表示、链表表示以及相应操作的实现。
特别是循环队列中队头与队尾指针的变化情况掌握:优先级队列的定义、特性和优先级队列的抽象数据类型,优先级队列的插入与删除算法五、递归 3学时(黑体小四)1、教学内容:(宋体小四加粗)递归的概念:递归问题的求解递归过程与递归工作栈:单向递归和尾递归的迭代实现;一般递归问题利用栈实现非递归解法广义表:广义表的概念;广义表的表示及操作;广义表存储结构的实现;广义表的访问算法;广义表的递归算法2、教学要求:(宋体小四加粗)掌握:递归的概念。
包括什么是递归,有那些种类的递归,递归问题的递归求解方法掌握:递归过程的机制与利用递归工作栈实现递归的方法了解:迷宫问题的递归求解思路及如何利用栈实现迷宫问题的非递归解法掌握:利用递归解决问题的分治法和回溯法掌握:广义表的定义及其实现方法掌握:广义表的递归算法六、树与森林 9学时(黑体小四)1、教学内容:(宋体小四加粗)树和森林的概念:树的定义;树的术语;树的抽象数据类型二叉树:二叉树的定义;二叉树的性质;二叉树的抽象数据类型二叉树的表示:顺序表示;二叉链表表示遍历二叉树:中序遍历;前序遍历;后序遍历;应用二叉树遍历的事例;二叉树的计数线索化二叉树:线索;中序线索化二叉树堆:堆的定义;堆的建立;堆的插入与删除;堆的调整算法树与森林:树的存储表示;森林与二叉树的转换;遍历树;遍历森林霍夫曼树:路径长度;霍夫曼树;霍夫曼编码2、教学要求:(宋体小四加粗)了解:树和森林的概念。
包括树的定义、树的术语、树的抽象数据类型掌握:二叉树的概念、性质及二叉树的表示熟练掌握:二叉树的遍历方法掌握:线索化二叉树的特性及寻找某结点的前驱和后继的方法熟练掌握:堆的定义,堆的建立、堆的插入与删除、堆的向上和向下调整等算法以及用来实现优先级队列的方法掌握:树与森林的实现,重点在用二叉树实现掌握:森林与二叉树的转换;树的遍历算法掌握:二叉树的计数方法及从二叉树遍历结果得到二叉树的方法掌握:霍夫曼树的实现方法、构造霍夫曼编码的方法及带权路径长度的计算七、集合与搜索 5学时(黑体小四)1、教学内容:(宋体小四加粗)集合及其表示:集合基本概念;以集合为基础的抽象数据类型;用位向量实现集合抽象据类型;用有序链表实现集合的抽象数据类型并查集:并查集的定义;并查集的实现简单的搜索结构:搜索的概念;静态搜索结构;顺序搜索;基于有序顺序表的顺序搜索和折半搜索二叉搜索树:二叉搜索树的定义;二叉搜索树上的搜索;二叉搜索树的插入;二叉搜索树的删除AVL树:AVL树定义;平衡化旋转;AVL树的插入和删除;AVL树高度2、教学要求:(宋体小四加粗)掌握:集合的基本概念及其表示方法,包括位数组及有序链表的表示及其相关操作的实现算法掌握:利用并查集实现集合的方法熟练掌握:静态搜索表的顺序搜索和折半搜索算法及其性能分析方法熟练掌握:二叉搜索树的表示、搜索、插入、删除算法及其性能分析方法掌握:AVL树的平衡化旋转、构造、插入、删除时的调整方法及其性能分析八、图 7学时(黑体小四)1、教学内容:(宋体小四加粗)图的基本概念:图的基本概念;图的抽象数据类型图的存储表示:邻接矩阵;邻接表;邻接多重表图的遍历与连通性:深度优先搜索;广度优先搜索;连通分量;关节点与重连通分量最小生成树:kruskul算法;prim算法单源最短路径问题:dijkstra算法活动网络:AOV网络与拓扑排序;AOE网络与关键路径2、教学要求:(宋体小四加粗)理解:图的基本概念和图的抽象数据类型掌握:图的3种存储表示:邻接矩阵、邻接表和邻接多重表。
对于前两种,要求掌握典型操作,如构造、求根、找第一个邻接顶点、找下一个邻接顶点等操作的实现算法熟练掌握:图的两种遍历算法与求解连通性问题的方法。
包括深度优先搜索和广度优先搜索算法、求连通分量的方法(不要求算法)理解:求解关节点及构造重连通图的方法(不要求算法)掌握:构造最小生成树的Prim算法和Kruskal算法,要求理解算法理解:如何用Dijkstra方法求解单源最短路径问题(不要求算法)熟练掌握:活动网络的拓扑排序算法掌握:求解关键路径的方法九、排序 7学时(黑体小四)1、教学内容:(宋体小四加粗)概述插入排序:直接插入排序;折半插入排序;链表插入排序;希尔排序交换排序:起泡排序;快速排序选择排序:直接选择排序;锦标赛排序;堆排序归并排序:归并;迭代的归并排序算法;递归的链表归并排序基数排序:多关键码排序;链式基数排序外排序:外排序的基本过程;k路平衡归并;初始归并段的生成;最佳归并树2、教学要求:(宋体小四加粗)掌握:排序的基本概念和性能分析方法掌握:插入排序、交换排序、选择排序、归并排序等内排序的方法及其性能分析方法了解:基数排序方法及其性能分析方法掌握:多路平衡归并等外排序方法及败者树构造方法掌握:生成初始归并段及败者树构造方法掌握:最佳归并树的建立方法十、索引与散列结构 5学时(黑体小四)1、教学内容:(宋体小四加粗)静态索引结构:线性索引;倒排索引;m路静态查找树动态索引结构:动态的m路查找树;B树的定义;B树的插入;B树的删除;B+树散列:散列表与散列方法;散列函数;处理溢出的闭散列方法;处理溢出的开散列方法;散列表分析2、教学要求:(宋体小四加粗)熟练掌握:静态索引结构,包括线性索引、倒排索引、静态索引树的搜索和构造方法熟练掌握:动态索引结构,包括B树、B+树的搜索和构造方法熟练掌握:散列法,包括散列函数的构第四部分相关说明(黑体四号)1、适用专业及层次(黑体小四):2、推荐教材(黑体小四):3、参考书(黑体小四):4、相关网络资源(黑体小四):。