1、1数据结构课程教学大纲课程代码: B03203 课程名称: 数据结构 英文名称: Data Structures 课程总学时: 60 (其中理论课 46 学时,实验 14 学时) 学 分: 2.5 课程类别: 必修 课程性质: 专业基础课 先修课程: 计算机导论、Java 语言程序设计 面向专业: 软件技术、计算机网络技术 开课单位:软件工程系 一、课程的性质、地位和任务本课程是计算机程序设计的重要理论技术基础,是计算机学科的核心课程,是专业技术基础课。本课程的目的是使学生掌握数据组织、存储和运算的基本原理和方法,培养学生进行数据结构的算法设计及分析问题的能力,能够编写出正确、清晰、质量较高的
2、程序,并且为学习后续课程打下良好的基础,在毕业后从事专业工作时能正确选择与使用数据结构;本课程的任务是从抽象数据类型的角度讨论各种基本类型的数据结构及其应用,另外还讨论了查找和排序的各种实现方法,使学生具备基本理论分析和编程能力。二、课程的教学目标(一)理论、知识方面1掌握数据结构的基本概念,进行初步算法分析。 2掌握线性表的逻辑结构、物理结构以及常用操作的算法。3掌握栈和队列的逻辑结构、物理结构,理解栈和队列的应用。4了解串类型的定义、表示和实现。5理解数组的定义、基本运算和存储结构,理解广义表的定义、术语、存储结构、基本运算,了解递归算法设计。6掌握树的基本概念,二叉树的定义、性质和存储结
3、构,遍历二叉树,了解线索二叉树的概念、应用,掌握赫夫曼树及应用7掌握静态查找表的查找方法、理解动态查找表的查找方法,掌握哈希表的基本概念8掌握常用内部排序算法(二)能力、技能方面1培养学生的数据抽象能力。2具备基本理论分析和编程能力。三、课程教学内容与要求2第一章 绪论 (2 学时)1. 教学内容及基本要求了解数据结构的发展及所处的地位(1 学时) ;深刻理解数据结构的基本概念和术语;掌握算法描述及算法的评价标准(1 学时) 。2. 重点、难点重点:数据结构的概念和术语。难点:时间复杂度的分析。第二章 线性表 (6 学时)1. 教学内容及基本要求理解线性表的概念、存储结构;深刻理解线性表的顺序
4、存储结构的特点、类型描述,熟练掌握插入、删除、查找操作的算法实现(2 学时) ;熟练掌握线性表的链式存储结构的特点、类型描述,插入、删除、查找操作的算法实现(2 学时) ;掌握循环链表、双向链表及其基本操作的算法(2 学时) 。2. 重点、难点重点:线性表的顺序存储和链式存储结构。难点:线性表的链式存储。第三章 栈和队列(4 学时)1. 教学内容及基本要求理解堆栈的概念、存储结构(1 学时) ;熟练掌握顺序存储和链式存储两种结构下的进栈、出栈的算法(1 学时) 。理解队列的概念、存储结构(1 学时) ;熟练掌握顺序存储和链式存储两种结构下的入队、出队的算法(1 学时) 。2. 重点、难点重点:
5、堆栈及其操作,队列及其操作。难点:递归方法的应用,循环队列的使用。第四章 串(2 学时)1. 教学内容及基本要求理解字符串的概念,掌握字符串的存储结构;了解字符串操作的应用。2. 重点、难点重点:字符串的存储结构。难点:字符串操作的实现。第五章 数组和广义表(2 学时)1. 教学内容及基本要求理解数组的定义、基本运算和存储结构,特殊矩阵的压缩存储(1 学时) ;理解广义表的定义、术语、存储结构、基本运算,递归算法设计(1 学时) 。2. 重点、难点重点:特殊矩阵的压缩存储;广义表的定义、术语、存储结构、运算。难点:特殊矩阵的压缩存储。3第六章 树和二叉树(8 学时)1. 教学内容及基本要求理解
6、树及二叉树的基本概念;深刻理解二叉树的定义、性质、存储结构(2 学时) ;熟练掌握遍历和线索二叉树的方法(2 学时) ;掌握哈夫曼树与哈夫曼编码(2 学时) ;掌握树及森林与二叉树之间的转换(2 学时) 。2. 重点、难点重点:二叉树的遍历、线索及应用。难点:哈夫曼树的构造。第七章 图(8 学时)1. 教学内容及基本要求理解图的概念及基本术语;掌握图的邻接矩阵和邻接表的存储结构(2 学时) ;熟练掌握图的深度优先遍历和广度优先遍历的方法(2 学时) ;了解图的遍历在实际中的应用(2 学时) ;了解最小生成树和最短路径(2 学时) 。2. 重点、难点重点:图的存储结构。难点:图的遍历。第八章 查
7、找(6 学时)1. 教学内容及基本要求掌握顺序查找、二分查找、分块查找的方法和过程(2 学时) ;熟练掌握二叉排序树的定义,结点插入和删除的操作方法及二叉排序树的查找过程(2 学时) ;熟练掌握哈希表定义、哈希函数构造和冲突的处理方法(2 学时) 。2. 重点、难点重点:顺序查找、二分查找、分块查找的方法。难点:二叉排序树结点的删除,哈希函数的构造。第九章 排序(6 学时)1. 教学内容及基本要求理解排序的概念;了解各种不同排序方法的适用场合(1 学时) ;熟练掌握插入排序、快速排序、选择排序的算法,了解各算法的时间复杂度(3 学时) ;熟练掌握堆排序、归并排序、基数排序的算法,了解各算法的时
8、间复杂度(2 学时) 。2. 重点、难点重点:各种排序的算法思想。难点:堆排序。4四、学时分配五、大纲说明1本课程理论总学时为 46 学时,为保证基本的教学质量,应当严格要求学生做好一定数量的习题,建议讲课占 90左右,习题课等占 10左右。2在教学过程中,逐步推行多媒体教学;不断进行教学方式方法的探索,重视培养学生的自学能力。3考核方式和成绩评定 :本课程的总成绩由理论考试成绩、平时作业与实验课成绩 3 部分组成,按百分制计。其中:理论考试成绩占 70%(理论考试成绩通过期末闭卷考试方式评定) ,平时作业成绩占10%(按每次作业完成情况评定) ,实验课成绩占 20% (依实验课表现与实验报告
9、情况评定)。理论考试为闭卷笔试,120 分钟 ,满分 100 分,统考 ,流水作业评分。4对外语的要求:在讲授过程中,给出各章节主要专业名词的英语单词,通过本门课程的学习,学生可接触到 100 个左右专业名词的英语单词。、推荐教材与参考书目1 严蔚敏,吴伟民数据结构(C 语言版) 北京:清华大学出版,19992 李春保数据结构习题与解析(C 语言篇) 北京:清华大学出版社,20013 朱战立数据结构Java 语言描述北京:清华大学出版社,2005执 笔:序号 教学内容 讲课 习题课 实验 合计1 绪论 2 22 线性表 6 2 83 栈和队列 4 2 44 串 2 45 数组和广义表 2 26 树和二叉树 8 2 2 127 图 8 2 108 查找 6 2 89 排序 6 2 2 10总 计 44 4 12 605审 阅: 审 批: