还剩2页未读,继续阅读
文本内容:
《数据结构》课程教学大纲课程英文名称DataStructures课程编号0801130学分3学时32+16-、课程教学对象本教学大纲适用于计算机学院电子信息工程(信息安全方向)和通信工程(计算机通信网络方向)等相关专业的普通本科学生数据结构课程的理论教学和课内实验教学
二、课程性质及教学目的数据结构课程是计算机各相关专业的必修专业基础课,是培养计算机学科本科生的核心课程本课程的教学活动必须实现满足学生学习后继专业课程的基本需要;为学生今后进行各种软件的开发打下扎实的理论和实践基础的目的,使学生在编程能力方面得到比较系统的训练为此,本课程强调理论和实践的统一,在对学生进行基本数据结构的理论、技术和方法培养的同时,强调学生实践能力的培养,突出学生针对实际问题进行基本数据结构分析和设计能力的培养鼓励学生学以致用,将学到的知识用以解决实际问题
三、对先修知识的要求本课程的先修课程为高级程序设计语言、离散数学等对先修课程的具体要求是掌握程序设计语言的基本概念;掌握结构化程序设计的基本原理以及初步的面向对象程序设计知识、具备良好的程序设计习惯和较好的程序调试能力;掌握离散数学的基本理论;具有一定的逻辑思维和推理能力
四、课程的主要内容、基本要求和学时分配建议(总学时数32)
8.5归并排序方法注知识点中粗体字部分为本课程的重点或难点
五、建议使用教材及参考书
[1]王红梅,胡明,王涛.数据结构(C++版)(第2版)[M].北京清华大学出版社,2011⑵王红梅,胡明,王涛.数据结构(C++版)学习辅导和实验指导[M].北京清华大学出版社,2006
[3]许卓群.数据结构[M].北京高等教育出版社,2006
[4]殷人昆.数据结构C++实现[M].北京清华大学出版社,2006
[5]陈慧南.数据结构——使用C++语言描述[M].北京人民邮电出版社,2006
[6]SartajSahni.DataStructuresAlgorithmsandApplicationsinC++[M].北京机械工业出版社,2003
[7]王晓东.数据结构(C语言版)[M].北京电子工业出版社,2007
[8]WilliamFord.DataStructurewithC++[M].北京清华大学出版社,2001
[9]苏光奎.数据结构导学[M].北京清华大学出版社,2002
[10]严蔚敏.数据结构(C语言版)[M].北京清华大学出版社,2002
六、课程考核方式本课程采用笔试闭卷的考核方式,要求学生熟练掌握课程教学目标要求的内容,并能有效表达和运用,以达到该课程的能力培养目标采用平时成绩和期末考试成绩相结合的方式平时表现(考勤、随堂提问、作业、随堂测验、实验环节)30%期末考试70%o
七、课内实验(实训)环节及要求(总学时数16)根据实际教学情况和学生意愿,在以下实验中选择4个实现项目(16学时),并通过课外编程进行学时补充知识模块知识点要求学时学习方式课外学习要求
1、数据结构概念
1.1数据结构的研究对象C2课堂讲授
1.2数据结构的基本概念A课堂讲授
1.3抽象数据类型的概念B课堂讲授
1.4算法的基本概念B课堂讲授
1.5算法复杂度的基本概念B课堂讨论
2、线性表
2.1线性表的定义及其逻辑特征B4课堂讲授
2.2线性表的抽象数据类型定义B课堂讲授
2.3顺序表的存储结构、基本操作算法及其时间性能A课堂讨论
2.4各种链表结构中实现线性表操作的基本方法A课堂讲授
3、栈和队列
3.1栈的定义及其操作特性B4课堂讲授
3.2顺序栈的实现方法A课堂讨论
3.3队列的定义及其操作特性B课堂讲授
3.4顺序队列的实现方法A课堂讨论
4、特殊线性表
4.1数组、存储结构及寻址方法B4课堂讲授
4.2矩阵压缩存储的基本思想B课堂讲授
4.3特殊矩阵和稀疏矩阵的压缩存储方法及寻址方法A课堂讲授
4.4三元组顺序表的转置运算C课堂讨论
4.5字符串B课堂讲授
5、树和二叉树
5.1树的定义及其基本术语C6课堂讲授
5.2树和森林的遍历方法B课堂讲授
5.3二叉树的定义及特点、二叉树的基本性质B课堂讲授
5.4一叉树的各种存储结构方法、遍历方法A课堂讲授
5.5树、森林与二叉树树的转换方法B课堂讨论
5.6哈夫曼树的构造方法和哈夫曼编码方法A课堂讲授
6、图
6.1图的逻辑结构及遍历方法A4课堂讲授
6.2图的存储结构及其实现A课堂讲授
6.3最小生成树B课堂讲授
6.4最短路径B课堂讲授
6.5AOV网与AOE网B课堂讨论
7、查找技术
7.1查找的基本概念及其算法的性能分析B4课堂讲授
7.2顺序查找和折半查找技术B课堂讲授
7.3二叉排序树的查找、插入和删除A课堂讨论
7.4散列的基本思想和基本概念A课堂讨论
7.5散列技术中处理冲突的方法A课堂讨论
8、排序技术
8.1排序的定义以及评价排序算法的标准B4课堂讲授
8.2插入排序算法及其时间性能A课堂讲授
8.3交换排序算法及其时间性能B课堂讲授
8.4选择排序算法及其时间性能和空间性能A课堂讲授序号实验(实训)项目实验(实训)内容实验(实训)目的及要求学时1顺序表处理程序的设计运用高级语言(C++/Java)编写一个至少包含四个基本功能的顺序表处理程序,调试、给出正确结果理解线性表的顺序存储结构的实现方法及其各种操作的算法设计方法42链接表处理程序的设计运用高级语言(C++/Java)编写一个至少包含四个基本功能的链接表处理程序,调试、给出正确结果理解线性表的链接存储结构的实现方法及其各种操作的算法设计方法43栈的基本操作运用高级语言(C++/Java)理解栈的应用4编写一个包含入栈、出栈基本操作的程序,调试、给出正确结果4队列的基本操作运用高级语言(C++/Java)编写一个循环顺序队列的程序实例,调试、给出正确结果理解循环队列的应用45遍历二叉树的程序设计运用高级语言(C++/Java)编写一个能够完成二叉树的四种遍历的程序之一,调试、给出正确结果理解遍历二叉树的概念;设计二叉树的存储结构;实现对二叉树的四种遍历46遍历图的程序设计运用高级语言(C++/Java)选择并实现图的一种存储结构;完成深度优先和广度优先遍历图的程序设计,调试、给出正确结果理解图的存储结构的实现方法及其遍历算法的设计方法47查找算法的程序设计运用高级语言(C++/Java)设计实现1〜2种查找算法,调试、给出正确结果理解查找表的概念以及分类和特点;掌握哈希表的构造方法以及解决冲突的方法48排序算法的程序设计运用高级语言(C++/Java)设计1〜2种排序算法,调试、给出正确结果理解内部排序的基本思想;掌握内部排序的基本方法;了解内部排序的优缺点4。