高级程序设计语言C课程教学大纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构A》课程教学大纲
一、课程基本信息
课程中文名称:数据结构A
课程英文名称:Data StructureA
课程编号: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学时)
实验目的:熟练掌握二叉排序树的构造和查找方法。
实验要求: