高级程序设计语言C课程教学大纲

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据结构A》课程教学大纲

—、课程基本信息

课程中文名称:数据结构A

课程英文名称:Data Structure A

课程编号:10072105

课程性质:学科基础课

课程学时和学分:总学时:64总学分:3.5理论学时:48 ±机学时:16

适用专业:计算机科学与技术、网络工程、软件工程

先修课程:计算机程序设计语言、离散数学等

开课系部、教研室:电子与信息工程系、计算机应用教研室

二、课程的地位与作用

《数据结构》是计算机科学中一门综合性的专业核心基础课程。它是编译原理、操作系统、数据库系统原理、算法设计与分析及计算机应用方面的主要基础。

三、课程总的教学目的和要求

本课程教学目的是通过本课程的学习,要求学生掌握数据结构的特点、存储方法和基本运算,培养学生运用C (C++)语言正确编程及调试的能力,运用数据结构解决简单的实际问题的能力,为后续计算机专业课程的学习打下坚实的基础。

四、各章主要教学内容

第1章数据结构概述(2学时)本章应了解数据结构及算法的概念;掌握计算语句频度和估算算法时间复杂度的方法。重点:数据结构的逻辑结构、存储结构及数据的运算三方面的概念及相互关系难点:算法复杂度的分析方法

第2章线性表(8学时)

本章应了解线性表的逻辑结构特性,以及线性表的两种存储实现方式;熟练掌握顺序表的定义与实现,包括查找、插入、删除算法的实现;熟练掌握在各种链表结构中实现线性表操作的基本方法,能在实际应用中选用适当的链表结构;本章实验应掌握线性表的基本操作在顺序和链式存储结构上的实现。

重点:顺序表和单链表上实现的各种基本算法及相关的时间性能分析难点:使用本章所学到的基本知识设计有效算法解决与线性表相关的应用问题第3章栈和队列(8学时)

本章应掌握栈和队列的定义、特性,并能正确应用它们解决实际问题;熟练掌握栈的顺序表示、链表表示以及相应操作的实现;熟练掌握队列的顺序表示、链表表示以及相应操作的实现;本章实验应掌握栈和队列的特点及栈和队列的基本运算。

重点:栈和队列在两种存储结构上实现的基本运算难点:循环队列中对边界条件的处理

第4章串(2学时)

本章应理解串的基本操作的定义,并能利用这些基本操作来实现串的其它各种操作的方法;熟练掌握在串的顺序存储结构上实现串的各种操作的方法;了解串操作的应用方法和特点。

重点:顺序存储结构上串的各种操作难点:串上实现的模式匹配算法第5章数组与广义表(4学时)本章应了解数组的两种存储表示方法,并掌握数组在以行为主的存储结构中的地址计算方法;掌握对特殊矩阵进行压缩存储时的下标变换公式;了解稀疏矩阵的两种压缩存储方法的特点和适用范围,理解以三元组表示稀疏矩阵时进行矩阵运算采用的处理方法;掌握广义表的结构特点及其存储表示方法,会对非空广义表进行分解。

重点:多维数组的存储方式、矩阵的压缩存储方式、广义表的定义及其求表头和表尾的运算难点:稀疏矩阵的压缩存储表示下实现的算法

第6章树与森林(10学时)本章应了解树和森林的概念。包括树的定义、树的术语和性质;熟练掌握二叉树的结构特性,熟悉二叉树的各种存储结构的特点及适用范围;熟练掌握二叉树的遍历方法及遍历算法;熟悉树的各种存储结构及其特点,掌握树、森林与二叉树的转换方法;掌握建立哈夫曼树和哈夫曼编码的方法及带权路径长度的计算;本章实验应掌握二叉树的结构特性,以及用指针类型描述、访问和处理二叉树的运算。

重点:二叉树的遍历算法及其相关应用难点:使用本章所学到的有关知识设计出有效算法,解决与树或二叉树相关的应用问题第7章图(10学时)

本章应理解图的基本概念,熟悉图的各种存储结构及其构造算法;熟练掌握图的两种搜索路径的遍历,并理解算法;掌握构造最小生成树的方法;理解用Dijkstra方法求解单源最短路径问题;掌握求活动网络的拓扑排序的方法,并理解算法;了解求解关键路径的方法;本章实验应熟悉图的存储结构及邻接矩阵和邻接表等有关概念,掌握图的两种搜索路径的遍历方法。

重点:图的两种存储结构上实现的遍历算法

难点:图的应用的实现

第8章查找(8学时)本章应熟练掌握顺序表和有序表的查找算法及其性能分析方法;熟练掌握二叉排序树的构造和

查找算法及其性能分析方法;理解AVL树的维护平衡方法;了解B_树、B啲特点、查找及构造方法;熟练掌握哈希函数的构造及解决冲突的方法;本章实验应熟练掌握二叉排序树的构造和查找方法。

重点:顺序查找、二分查找,二叉查找树上查找以及散列表上查找的基本思想和算法实现

难点:二叉查找树的删除算法及B—树上的插入和删除算法

第9章排序(12学时)本章应掌握排序的基本概念和各种排序方法的特点,并能加以灵活应用;掌握插入排序、交换排序、选择排序、归并排序的方法及其性能分析方法;了解基数排序方法及其性能分析方法;本章实验应掌握常用的排序方法,并掌握用高级语言实现排序算法的方法。

重点:快速排序、堆排序、归并排序和希尔排序的基本思想及排序过程

难点:这四个排序算法的实现

实验1线性表的应用(4学时)实验目的:掌握线性表的基本操作在顺序和链式存储结构上的实现。

实验要求:

(1)建立含有若干个元素的顺序表链表;

(2)对已建立的顺序表实现插入、删除、查找、逆置等操作。

实验2栈和队列的应用(2学时)实验目的:掌握栈和队列的特点,及栈和队列的基本运算。实验要

求:

(1)栈的初始化、判栈是否为空、进栈、出栈等运算的实现。

(2)利用栈实现判定表达式中的括号是否匹配。

实验3数组的应用(2学时)(选作)实验目的:熟悉数组的有关概念,掌握稀疏矩阵的三元组存储结构的转置方法。实验要求:采用两种方法实现稀疏矩阵的转置。

实验4树和森林的应用(2学时)实验目的:掌握二叉树的结构特性,以及用指针类型描述、访问和处理二叉树的运算。实验要求:

(1)创建以二叉链表作存储结构的二叉树;(2)按中序遍历二叉树;

(3)计算二叉树的单枝结点数;

(4)按层次遍历二叉树。

实验5图的应用(4学时)实验目的:熟悉图的存储结构及邻接矩阵和邻接表等有关概念,掌握图的两

种搜索路径的遍历方法。

实验要求:(1)创建以邻接表作存储结构的无向图;(2)按深度优先遍历图;

(3)按广度优先遍历图。

实验6查找方法的实现(2学时)实验目的:熟练掌握二叉排序树的构造和查找方法。

实验要求:

1)创建以二叉链表作存储结构的二叉排序树;

2)实现二叉排序树的查找、插入、中序遍历操作。

实验7排序方法的实现(2学时)实验目的:掌握常用的排序方法,并掌握用高级语言实现排序算法的方法。实验要求:用各种排序方法实现学生考试成绩表的排序并输出。学生的考试成绩表必须通过键盘输入数据而建立,同时要对输出格式进行控制。

实验课考核方式采用课堂表现和实验报告相结合方式。实验课成绩占课程总成绩的10%o

五、课程考核和成绩评定方式

闭卷考试和平时考核方式结合,期末考试占70%;平时成绩占30%0

六、教材与主要参考书

1・教材

[1]王红梅,胡明,王涛•数据结构(C++版)•北京:清华大学出版社,2005. 2.实验指导书或教材

[1]王红梅,胡明,王涛•数据结构(C++版)学习辅导与实验指导•北京:清华大学出版社,2005.

[2]严蔚敏,吴伟民著•数据结构题集(C语言版)•北京:清华大学出版社,1997.3、主要参考教材和参

相关文档
最新文档