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

有金钱之外的思想,保留一点自己值得自傲的地方,人生活得更加有意义。
《数据结构 A》课程教学大纲
Data Structure A
课程代码: 课程性质:专业基础理论课/必修 适用专业:信息计算、信息安全 开课学期:5 总学时数:72 总学分数:4.5 编写年月:2003年7月 修订年月:2007年7月 执 笔:高学军、刘科峰、李小英 一、课程的性质和目的
数据结构是信息与计算科学专业的一门重要专业基础课程
当用计算机来解决实际问题时
就要涉及到数据的表示及数据的处理
而数据表示及数据处理正是数据结构课程的主要研究对象
通过这两方面内容的学习
为后续课程
特别是软件方面的课程打下了厚实的知识基础
同时也提供了必要的技能训练
因此
数据结构课程在信息与计算科学专业中具有举足轻重的作用

二、课程教学内容及学时分配
第1章 绪论 (4学时)
理解数据、数据元素和数据项的概念及其相互间的关系
理解数据结构的逻辑结构、存储结构的联系与区别
以及在数据结构上施加的运算及其实现
掌握简单的算法分析方法

本章知识点为:数据、数据元素、数据对象、数据结构、存储结构和数据类型等概念术语的确定含义;抽象数据类型的定义、表示和实现方法;描述算法的类C语言;算法设计的基本要求以及从时间和空间角度分析算法的方法

第2章 线性表 (10学时
2个学时实验上机)
理解线性表的定义及其运算
理解顺序表和链表的定义、组织形式、结构特征和类型说明
掌握在这两种表上实现的插入、删除和按值查找的算法
了解循环链表、双向(循环)链表的结构特点和在其上施加的插入、删除等操作
掌握稀疏多项式在线性表的两种存储结构上的实现方法

本章知识点为:线性表的逻辑结构定义、抽象数据类型定义和各种存储结构的描述方法;在线性表的两类存储结构(顺序的和链式的) 上实现基本操作;稀疏多项式的抽象数据类型定义、表示和加法的实现

第3章 栈和队列 (6学时
2个学时实验上机)
理解栈和队列的定义、特征及在其上所定义的基本运算
掌握在两种存储结构上对栈和队列所施加的基本运算的实现
熟练掌握循环队列和链队列的基本操作实现算法
尤其是队满和队空的描述方法

本章知识点为:抽象数据类型栈的定义;栈的表示和实现;栈的应用;抽象数据类型队列的定义;链队列;循环队列

第4章 串 (4学时
2个学时实验上机)
熟悉串的七种基本操作的定义
并能利用这些基本操作来实现串的其它各种操作的方法

练掌握在串的定长顺序存储结构上实现串的各种操作的方法
掌握串的堆存储结构以及在其上实现串操作的基本方法

本章知识点为:串的数据类型定义;串的三种存储表示:定长顺序存储结构、块链存储结构和堆分配存储结构;串的各种基本操作的实现及其应用;
第5章 数组和广义表 (6学时
2个学时实验上机)
了解数组的两种存储表示方法
并掌握数组在以行为主的存储结构中的地址计算方法
掌握对特殊矩阵进行压缩存储时的下标变换公式
了解稀疏矩阵的两种压缩存储方法的特点和适用范围
领会以三元组表示稀疏矩阵时进行矩阵运算采用的处理方法
掌握广义表的结构特点及其存储表示方法

本章知识点为:数组的类型定义和表示方式;特殊矩阵和稀疏矩阵的压缩存储方法及运算的实现;广义表的逻辑结构和存储结构和广义表的操作

第6章 树和二叉树 (12学时
2个学时实验上机)
深刻理解树的定义、性质及其存储方法
熟练掌握二叉树的二叉链表存储方式、结点结构和类型定义
并能画出给定二叉树的二叉链表的结构示意图;理解并掌握二叉树的三种遍历方法
并能写出该三种遍历的算法;会完成树、森林与二叉树间的相互转换;理解哈夫曼树的构造方法
并能对给定的数据集合构造出哈夫曼树

本章知识点为:二叉树的定义、性质和存储结构;二叉树的遍历和线索化以及遍历算法的各种描述形式;树和森林的定义、存储结构、与二叉树的转换、遍历;树的多种应用

第7章 图 (12学时
2个学时实验上机)
理解图的基本概念及术语
掌握图的两种存储结构(邻接矩阵和邻接表)的表示方法;熟练掌握图的两种遍历(深度优先搜索遍历和广度优先搜索遍历)的算法思想、步骤
并能列出在两种存储结构上按上述两种遍历算法得到的序列;理解最小生成树的概念
能按Prim算法构造最小生成树;了解并掌握拓扑排序、关键路径、最短路径的算法思想

本章知识点为:图的定义和术语;图的四种存储结构:数组表示法、邻接表、十字链表和邻接多重表;图的两种遍历策略:深度优先搜索和广度优先搜索;图的连通性:连通分量和最小生成树;拓扑排序和关键路径;两类求最短路径问题的解法

第8章 查找 (10学时
2个学时实验上机)
了解查找的基本思想及查找成功和不成功的概念
掌握在顺序表、有序表、索引表、散列表等上的查找方法和算法
并能求出相应的平均查找长度

本章知识点为:讨论查找表(包括静态查找表和动态查找表)的各种实现方法:顺序表、有

序表、树表和哈希表;平均查找长度的讨论

第9章 内部排序 (8学时
2个学时实验上机)
 了解排序的基本思想和基本概念
理解和掌握插入排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序和基数排序的基本思想、步骤及算法

本章知识点为:讨论比较各种内部排序方法
插入排序、交换排序、选择排序、归并排序和基数排序的基本思想、算法特点、排序过程以及它们的时间复杂度分析
在每类排序方法中
又从简单方法入手
重点讨论性能先进的高效方法

三、课程教学的基本要求
本课程是信息与计算科学专业的重要专业基础课
计算机科学各领域及有关的系统和应用软件都要用到各种数据结构
在教学方法上采用课堂讲授
课后自学
课堂讨论等教学形式

(一)课堂讲授
本课程属于基础理论课程
在传授知识原理的前提下
配合实际应用例子
由浅入深善于诱导
使学生从被动吸收知识的状态下
转化到主动索取知识的状态中来
并采用多媒体辅助教学
加大课堂授课的知识含量
注重培养学生的学习兴趣
提高学生的基本素质

(二)课后自学
为了培养学生整理归纳
综合分析和处理问题的能力
每章都安排一部分内容
课上教师只给出自学提纲
不作详细讲解
课后学生自学

(三)课堂讨论
课堂讨论的目的是活跃学习气氛
开拓思路
教师应认真组织
安排重点发言
充分调动每一名同学的学习积极性
做好总结

(四)课外作业
 为了让学生巩固所学的知识
每章都布置一定数量课外作业

(五)实验
用C语言或C++语言完成一些算法设计题
培养学生的算法设计能力和程序设计能力

总评成绩:平时作业占30%
闭卷考试占70%

四、本课程与其它课程的联系与分工
先修课程:离散数学
C++面向对象程序设计等

后续课程:操作系统
数据库原理等

五、建议教材与教学参考书
[1] 严蔚敏 吴伟民编著
数据结构(C语言版)
北京:清华大学出版社
2004
[2] 严蔚敏 吴伟民编著
数据结构题集(C语言版)
北京:清华大学出社
2004
[3] Willan Ford
Willian Topp. Data Structures with C++. New Jersey:Prentice Hall Inc
Adivision Simon & Schuster Company
1996(数据结构--C++语言描述.北京:清华大学出版社
1997)
[4] 徐孝凯
数据结构实用教程(C/C++描述)
北京:清华大学出版社
1999
[5] 陈慧南.数据结构(使用C++语言描述)
南京:东南大学出版社
2001
[6] 殷人昆
陶永雷
谢若阳等.数据结构(用面向对象方法与C++描述)
北京:清华大

学出版社
1999

相关文档
最新文档