
数据结构课程教学大纲 第一部分大纲说明 一、课程的性质与任务 数据结构是中央广播电视大学计算机网络技术专业的选修课程。本课程4学分,72学 时,其中实验24学时,开设一学期。 数据结构是计算机网络技术专业的一门重要的辅修课。主要介绍如何合理地组织数据、 有效地存储和处理数据,正确地设计算法以及对算法进行分析和评价。课程的主要内容包括: 数据结构和算法的基本概念、线性表、栈和队列、串、数组和广义表、树和图、查找和排序 等。 通过本课程的学习,使学生较深入地理解数据的逻辑结构和物理结构,掌握有关算法和 基本的程序设计技能,能编制高效且有一定难度的程序,为学习后续课程奠定基础。 课程以C语言作为数据结构和算法的描述工具。教学环节包括理论教学和实验,教学 中注重基础,突出应用,强化数据结构基本知识和程序设计基本能力的双基训练。 二、与相关课程的关系 先修课程:C语言程序设计、离散数学。 后续课程:操作系统、数据库应用技术、软件工程等。 三、课程的教学要求 1.掌握常用的数据结构的逻辑关系、存储结构、操作特点及有关应用。 2.了解迭代、递归等程序设计技术。 3.掌握常用的查找、排序算法的基本原理。 4.了解数据结构在后续课程中的作用。 四、课程的教学方法和教学形式建议 数据结构课程内容涉及面广,是一门理论性和实践性都很强的课程,在专业中具有承前 启后的作用,是一门核心专业基础课。如何根据实际问题的需要并结合算法的要求合理地选 用相关的数据结构和正确使用程序设计技术,是本课程的重点和难点。因此在教学中应注意 以下几点: 1.注重基础、突出应用、强化程序设计基本能力的训练。由浅入深、由简单到复杂、 由特殊到一般讲解相关概念和原理
数据结构课程教学大纲 第一部分 大纲说明 一、课程的性质与任务 数据结构是中央广播电视大学计算机网络技术专业的选修课程。本课程 4 学分,72 学 时,其中实验 24 学时,开设一学期。 数据结构是计算机网络技术专业的一门重要的辅修课。主要介绍如何合理地组织数据、 有效地存储和处理数据,正确地设计算法以及对算法进行分析和评价。课程的主要内容包括: 数据结构和算法的基本概念、线性表、栈和队列、串、数组和广义表、树和图、查找和排序 等。 通过本课程的学习,使学生较深入地理解数据的逻辑结构和物理结构,掌握有关算法和 基本的程序设计技能,能编制高效且有一定难度的程序,为学习后续课程奠定基础。 课程以 C 语言作为数据结构和算法的描述工具。教学环节包括理论教学和实验,教学 中注重基础,突出应用,强化数据结构基本知识和程序设计基本能力的双基训练。 二、与相关课程的关系 先修课程:C 语言程序设计、离散数学。 后续课程:操作系统、数据库应用技术、软件工程等。 三、课程的教学要求 1.掌握常用的数据结构的逻辑关系、存储结构、操作特点及有关应用。 2.了解迭代、递归等程序设计技术。 3.掌握常用的查找、排序算法的基本原理。 4.了解数据结构在后续课程中的作用。 四、课程的教学方法和教学形式建议 数据结构课程内容涉及面广,是一门理论性和实践性都很强的课程,在专业中具有承前 启后的作用,是一门核心专业基础课。如何根据实际问题的需要并结合算法的要求合理地选 用相关的数据结构和正确使用程序设计技术,是本课程的重点和难点。因此在教学中应注意 以下几点: 1.注重基础、突出应用、强化程序设计基本能力的训练。由浅入深、由简单到复杂、 由特殊到一般讲解相关概念和原理

2.增加案例教学的比重,从分析典型的应用案例入手引出相关概念、理论和技术。理 论教学采用启发式教学方法,并适当组织课堂讨论。实践教学可以组织学生进行程序设计 技术交流”。 3.对实验内容要制定实施方案和评测标准,保证学生的上机学时,使学生认真完成本 课程所规定的实验,得到程序设计的训练和编程能力的提高。 4.日常的面授辅导应着重于重点归纳、难点剖析以及案例分析讨论等。 五、课程教学要求的层次 本课程的教学要求分为掌握、理解和了解三个层次。掌握是在理解的基础上加以灵活应 用:理解是能正确表达有关概念和方法的含义,并且能够进行简单分析和判断:了解即能正 确判别有关概念和方法。 在期末考核试卷中(涵盖实验内容),掌握的内容约占总分数的60%,理解的内容约 占30%,了解的内容约占10%。 第二部分媒体使用与教学过程建议 一、课程学时分配 课程教学总学时数为72学时,4学分,其中授课学时为48学时(含面授、录像学时) 实验课学时为24学时。各章学时分配如下: 章 教学内容 授课学时 实验学时 第1章 绪论 2 0 第2章 线性表 P 6 第3章 栈和队列 6 3 第4章 串 2 0 第5章 数组和广义表 2 0 第6章 树和二叉树 10 7 第7章 图 6 0 第8章 查找 6 4 第9章 排序 6 合计 48 24 二、多种媒体教材的总体说明 本课程使用的教学媒体有:文字教材、录像教材、CAI课件和网上教学。 1.文字教材
2.增加案例教学的比重,从分析典型的应用案例入手引出相关概念、理论和技术。理 论教学采用启发式教学方法,并适当组织课堂讨论。实践教学可以组织学生进行“程序设计 技术交流”。 3.对实验内容要制定实施方案和评测标准,保证学生的上机学时,使学生认真完成本 课程所规定的实验,得到程序设计的训练和编程能力的提高。 4.日常的面授辅导应着重于重点归纳、难点剖析以及案例分析讨论等。 五、课程教学要求的层次 本课程的教学要求分为掌握、理解和了解三个层次。掌握是在理解的基础上加以灵活应 用;理解是能正确表达有关概念和方法的含义,并且能够进行简单分析和判断;了解即能正 确判别有关概念和方法。 在期末考核试卷中(涵盖实验内容),掌握的内容约占总分数的 60%,理解的内容约 占 30%,了解的内容约占 10%。 第二部分 媒体使用与教学过程建议 一、课程学时分配 课程教学总学时数为 72 学时,4 学分,其中授课学时为 48 学时(含面授、录像学时) 实验课学时为 24 学时。各章学时分配如下: 章 教学内容 授课学时 实验学时 第 1 章 绪论 2 0 第 2 章 线性表 8 6 第 3 章 栈和队列 6 3 第 4 章 串 2 0 第 5 章 数组和广义表 2 0 第 6 章 树和二叉树 10 7 第 7 章 图 6 0 第 8 章 查找 6 4 第 9 章 排序 6 4 合计 48 24 二、多种媒体教材的总体说明 本课程使用的教学媒体有:文字教材、录像教材、CAI 课件和网上教学。 1.文字教材

主要教学媒体。文字教材的内容是教学大纲所规定的教学基本内容,是本课程教与学和 考核的基本依据。文字教材要求体系完整,适合成人自主学习的需求,体现电大教学的规律 和特点。 2.录像教材 辅媒体。讲授课程的重点和难点,思路和方法。充分利用电视教材直观性的特点,通过 动画、演示等手段讲解抽象的概念和某些操作性内容的细节。 3.CAI课件 辅媒体。主要内容有算法执行过程演示、模拟实验、自测练习等。通过交互式的设计, 帮助学生掌握课程的重点和难点,提高算法和程序的分析、设计能力。 4.网上教学 网上教学内容包括教学大纲、考核说明等教学文件,各章教学辅导、阶段性总结和复习, VOD点播,在线答疑等。网上教学内容与教学进度同步,侧重于对学生学习过程的辅导。 三、教学环节 1.自学 自学是学生重要的学习手段,要求以文字教材为主,辅以录像教材、CA课件、网上教 学资源进行学习。录像教材和CAI课件可加深学生对课程重难点内容的理解,提高程序设 计技能。网上教学资源与教学进度同步,解决学生在学习过程中遇到的问题。自学可以采取 个人和小组学习等方式,学生应注意自学能力的培养,保证必要的自学时间。 2.面授辅导 面授辅导由地方电大辅导教师担任,辅导教师应以文字教材为依据,采用讲解、分析、 作业讲评等方式,讲解课程的重点和难点,思路与方法,进行程序设计分析和讨论,解答作 业,指导实验等,培养学生学习、思考和分析解决问题的能力。 3.实验 实验是本课程的重要组成部分,由地方电大组织实施。学生应认真完成本课程所规定的 实验,未做实验或实验不及格者没有资格参加本课程的期末考试。 4.作业 作业是巩固和检验学习效果的有效手段,湖北电大将定期在学习平台上布置作业,学生 应根据学习进度认真完成。 四、考核
主要教学媒体。文字教材的内容是教学大纲所规定的教学基本内容,是本课程教与学和 考核的基本依据。文字教材要求体系完整,适合成人自主学习的需求,体现电大教学的规律 和特点。 2.录像教材 辅媒体。讲授课程的重点和难点,思路和方法。充分利用电视教材直观性的特点,通过 动画、演示等手段讲解抽象的概念和某些操作性内容的细节。 3.CAI 课件 辅媒体。主要内容有算法执行过程演示、模拟实验、自测练习等。通过交互式的设计, 帮助学生掌握课程的重点和难点,提高算法和程序的分析、设计能力。 4.网上教学 网上教学内容包括教学大纲、考核说明等教学文件,各章教学辅导、阶段性总结和复习, VOD 点播,在线答疑等。网上教学内容与教学进度同步,侧重于对学生学习过程的辅导。 三、教学环节 1.自学 自学是学生重要的学习手段,要求以文字教材为主,辅以录像教材、CAI 课件、网上教 学资源进行学习。录像教材和 CAI 课件可加深学生对课程重难点内容的理解,提高程序设 计技能。网上教学资源与教学进度同步,解决学生在学习过程中遇到的问题。自学可以采取 个人和小组学习等方式,学生应注意自学能力的培养,保证必要的自学时间。 2.面授辅导 面授辅导由地方电大辅导教师担任,辅导教师应以文字教材为依据,采用讲解、分析、 作业讲评等方式,讲解课程的重点和难点,思路与方法,进行程序设计分析和讨论,解答作 业,指导实验等,培养学生学习、思考和分析解决问题的能力。 3.实验 实验是本课程的重要组成部分,由地方电大组织实施。学生应认真完成本课程所规定的 实验,未做实验或实验不及格者没有资格参加本课程的期末考试。 4.作业 作业是巩固和检验学习效果的有效手段,湖北电大将定期在学习平台上布置作业,学生 应根据学习进度认真完成。 四、考核

考核是对学生学习效果的检查和验收。本课程的考核采用期末终结性考核和形成性考核 相结合的方式。期末终结性考核由湖北电大根据教学大纲统一命题: 第三部分教学内容和教学要求 第1章绪论 教学内容: 1.本课程的学习目的、教学内容简介 2.数据结构的基本概念 3.算法和算法分析的基本概念 教学要求: 1.掌握数据结构和算法的基本概念: 2.理解算法和数据结构在程序设计中的作用: 3.了解算法分析的基本方法,能对简单问题进行时间复杂度的分析: 4.了解本课程的学习重点和学习方法。 第2章线性表 教学内容: 1.线性表的逻辑结构、顺序存储结构、链式存储结构 2.线性表在顺序结构和链式结构上的基本操作和应用举例 3.两种存储结构的比较 教学要求: 1.掌握线性表的两种存储结构和基本操作: 2.理解线性表的两种存储结构各自的特点和应用场合: 3.能利用两种存储结构解决简单应用问题。 第3章栈和队列 教学内容:
考核是对学生学习效果的检查和验收。本课程的考核采用期末终结性考核和形成性考核 相结合的方式。期末终结性考核由湖北电大根据教学大纲统一命题; 第三部分 教学内容和教学要求 第 1 章 绪论 教学内容: 1.本课程的学习目的、教学内容简介 2.数据结构的基本概念 3.算法和算法分析的基本概念 教学要求: 1.掌握数据结构和算法的基本概念; 2.理解算法和数据结构在程序设计中的作用; 3.了解算法分析的基本方法,能对简单问题进行时间复杂度的分析; 4.了解本课程的学习重点和学习方法。 第 2 章 线性表 教学内容: 1.线性表的逻辑结构、顺序存储结构、链式存储结构 2.线性表在顺序结构和链式结构上的基本操作和应用举例 3.两种存储结构的比较 教学要求: 1.掌握线性表的两种存储结构和基本操作; 2.理解线性表的两种存储结构各自的特点和应用场合; 3.能利用两种存储结构解决简单应用问题。 第 3 章 栈和队列 教学内容:

1.栈的定义、表示和实现(顺序存储、链式存储)、栈的应用举例、栈在递归程序设 计技术中的作用 2.队列的定义、表示和实现(顺序存储、链式存储)、队列的应用举例 3.循环队列 4.栈和队列的操作和应用比较 教学要求: 1.掌握栈和队列的特点: 2.掌握顺序栈和链栈的基本操作和实现方法: 3.掌握顺序队列和链队列的基本操作和实现方法: 4.理解循环队列的概念: 5.能利用栈和队列进行相关程序设计: 第4章串 教学内容: 1.串类型定义、C语言中字符串的特点和处理方法 2.串的顺序存储结构和链式存储结构 3.串的基本运算和实现方法 4.对字符串进行相关操作的应用举例 教学要求: 1.掌握C语言中字符串的特点和利用字符型数组和字符指针处理字符串的方法: 2.能利用字符串的的存储结构和相关操作解决简单应用问题。 第5章数组和广义表 教学内容: 1.数组的定义和存储结构 2.特殊矩阵和稀疏矩阵的存储结构
1.栈的定义、表示和实现(顺序存储、链式存储)、栈的应用举例、栈在递归程序设 计技术中的作用 2.队列的定义、表示和实现(顺序存储、链式存储)、队列的应用举例 3.循环队列 4.栈和队列的操作和应用比较 教学要求: 1.掌握栈和队列的特点; 2.掌握顺序栈和链栈的基本操作和实现方法; 3.掌握顺序队列和链队列的基本操作和实现方法; 4.理解循环队列的概念; 5.能利用栈和队列进行相关程序设计; 第 4 章 串 教学内容: 1.串类型定义、C 语言中字符串的特点和处理方法 2.串的顺序存储结构和链式存储结构 3.串的基本运算和实现方法 4.对字符串进行相关操作的应用举例 教学要求: 1.掌握 C 语言中字符串的特点和利用字符型数组和字符指针处理字符串的方法; 2.能利用字符串的的存储结构和相关操作解决简单应用问题。 第 5 章 数组和广义表 教学内容: 1.数组的定义和存储结构 2.特殊矩阵和稀疏矩阵的存储结构

3.广义表的定义和存储结构简介 教学要求: 1.掌握二维数组的顺序存储结构和访问方法: 2.理解特殊矩阵和稀疏矩阵的压缩存储原理: 3.了解广义表的存储结构和有关操作。 第6章树和二叉树 教学内容: 1.树的基本概念 2.二叉树的性质和存储结构 3.二叉树的遍历 4.哈夫曼树及其应用 教学要求: 1.掌握树的基本概念: 2.掌握二叉树的性质和存储结构及有关操作和实现方法: 3.掌握遍历二叉树的算法步骤,并能利用递归程序设计技术具体实现: 4.掌握最优二叉树的构造方法,了解它在数据压缩中的应用。 第7章图 教学内容: 1.图的基本概念 2.图的存储结构 3.图的遍历 4.最小生成树和最短路径 教学要求: 1.掌握图的基本概念:
3.广义表的定义和存储结构简介 教学要求: 1.掌握二维数组的顺序存储结构和访问方法; 2.理解特殊矩阵和稀疏矩阵的压缩存储原理; 3.了解广义表的存储结构和有关操作。 第 6 章树和二叉树 教学内容: 1.树的基本概念 2.二叉树的性质和存储结构 3.二叉树的遍历 4.哈夫曼树及其应用 教学要求: 1.掌握树的基本概念; 2.掌握二叉树的性质和存储结构及有关操作和实现方法; 3.掌握遍历二叉树的算法步骤,并能利用递归程序设计技术具体实现; 4.掌握最优二叉树的构造方法,了解它在数据压缩中的应用。 第 7 章 图 教学内容: 1.图的基本概念 2.图的存储结构 3.图的遍历 4.最小生成树和最短路径 教学要求: 1.掌握图的基本概念;

2.掌握图的存储结构(邻接矩阵和邻接表): 3.掌握图的深度优先和广度优先的算法步骤并了解它们的实现技术: 4.了解最小生成树和最短路径的算法步骤,并理解它们的实现技术。 第8章查找 教学内容: 1.线性表的查找(顺序查找、折半查找、分块查找) 2.二叉排序树的查找 3.哈希表(哈希表的定义、哈希函数的构造、处理冲突的方法、哈希表的查找和分析) 教学要求: 1.掌握顺序查找,折半查找的算法步骤和实现: 2.掌握二叉排序树的有关操作(建立,插入,删除等),了解其他树表查找的原理: 3.了解哈希表的相关概念和原理。 第9章排序 教学内容: 1.插入排序(直接插入排序、希尔排序) 2.交换排序(冒泡排序、快速排序) 3.选择排序(简单选择排序、堆排序) 4.归并排序。 教学要求: 1.掌握各种排序算法的算法步骤和具体实现: 2.理解各种算法的特点,了解它们的时间复杂度。 第四部分实验内容和实验要求 实验1:线性表 实验内容:
2.掌握图的存储结构(邻接矩阵和邻接表); 3.掌握图的深度优先和广度优先的算法步骤并了解它们的实现技术; 4.了解最小生成树和最短路径的算法步骤,并理解它们的实现技术。 第 8 章 查找 教学内容: 1.线性表的查找(顺序查找、折半查找、分块查找) 2.二叉排序树的查找 3.哈希表(哈希表的定义、哈希函数的构造、处理冲突的方法、哈希表的查找和分析) 教学要求: 1.掌握顺序查找,折半查找的算法步骤和实现; 2.掌握二叉排序树的有关操作(建立,插入,删除等),了解其他树表查找的原理; 3.了解哈希表的相关概念和原理。 第 9 章 排序 教学内容: 1.插入排序(直接插入排序、希尔排序) 2.交换排序(冒泡排序、快速排序) 3.选择排序(简单选择排序、堆排序) 4.归并排序。 教学要求: 1.掌握各种排序算法的算法步骤和具体实现; 2.理解各种算法的特点,了解它们的时间复杂度。 第四部分 实验内容和实验要求 实验 1:线性表 实验内容:

1.从键盘输入10个整数,设计算法,实现线性结构上的顺序表的产生以及元素的查找、 插入与删除。 2.从键盘输入5个整数,设计算法,实现线性结构上的单链表的产生以及元素的查找、 插入与删除。 实验要求: 1.在程序的运行过程中给出以下提示信息以供选择数字,从而进行相应的操作。 0--EXIT表示退出程序 1--NSERT表示插入节点。需从键盘上输入插入的位置和元素的值(都是整数)。 2-DELETE表示要删除元素的位置,执行后返回元素的值。 3--LOCATE要求输入要查找元素的值,执行后返回该元素在表中的位置。 2.C完成算法设计和程序设计并上机调试通过。 实验2:栈、队列、递归程序设计 实验内容: 1.栈和队列的基本操作 编写一个算法,输出指定栈中的栈底元素,并使得原栈中的元素倒置。 实验要求: 1.掌握栈、队列的访问特点和基本操作: 2.掌握在简单应用中不同存取结构的栈和队列的程序设计技术: 3.对上述实验内容要求完成数据结构和算法的设计,并用C语言设计程序,用算法测 试,并验证程序正确。 实验3:二叉树 实验内容: 1.二叉树的顺序存储结构 设一棵完全二叉树用顺序存储方法存储于数组tre中,编写程序:(1)用链式存储方 式存储该数组。(2)对该二叉树采用中序遍历法显示遍历结果。 实验要求: 1.掌握二叉树的顺序存储结构和链式存储结构: 2.掌握二叉树的不同遍历方式和实现技术:
1.从键盘输入 10 个整数,设计算法,实现线性结构上的顺序表的产生以及元素的查找、 插入与删除。 2.从键盘输入 5 个整数,设计算法,实现线性结构上的单链表的产生以及元素的查找、 插入与删除。 实验要求: 1.在程序的运行过程中给出以下提示信息以供选择数字,从而进行相应的操作。 0----EXIT 表示退出程序 1----INSERT 表示插入节点。需从键盘上输入插入的位置和元素的值(都是整数)。 2----DELETE 表示要删除元素的位置,执行后返回元素的值。 3----LOCATE 要求输入要查找元素的值,执行后返回该元素在表中的位置。 2.C 完成算法设计和程序设计并上机调试通过。 实验 2:栈、队列、递归程序设计 实验内容: 1.栈和队列的基本操作 编写一个算法,输出指定栈中的栈底元素,并使得原栈中的元素倒置。 实验要求: 1.掌握栈、队列的访问特点和基本操作; 2.掌握在简单应用中不同存取结构的栈和队列的程序设计技术; 3.对上述实验内容要求完成数据结构和算法的设计,并用 C 语言设计程序,用算法测 试,并验证程序正确。 实验 3:二叉树 实验内容: 1.二叉树的顺序存储结构 设一棵完全二叉树用顺序存储方法存储于数组 tree 中,编写程序:(1)用链式存储方 式存储该数组。(2)对该二叉树采用中序遍历法显示遍历结果。 实验要求: 1.掌握二叉树的顺序存储结构和链式存储结构; 2.掌握二叉树的不同遍历方式和实现技术;

实验4:查找和排序 实验内容: 1.问题描述 2.编写一个程序对有序表(即表中数据元素按关键码升序或降序排列)进行二分查找: 对无序表实现快速排序。 a)使用数组来构造有表并输出之: b)对无序表实现冒泡排序: c)对有序表实现折半查找。 实验要求: 1.掌握有关排序算法的原理、步骤和编程技术: 2.对上述实验内容要求以实例进行测试,验证正确性: 3.在程序中作出详细注释
实验 4:查找和排序 实验内容: 1. 问题描述 2. 编写一个程序对有序表(即表中数据元素按关键码升序或降序排列)进行二分查找; 对无序表实现快速排序。 a) 使用数组来构造有表并输出之; b) 对无序表实现冒泡排序; c) 对有序表实现折半查找。 实验要求: 1.掌握有关排序算法的原理、步骤和编程技术; 2.对上述实验内容要求以实例进行测试,验证正确性; 3.在程序中作出详细注释