《数据结构》实验教学大纲

合集下载

《数据结构》教学大纲

《数据结构》教学大纲

《数据结构》教学大纲一、课程简介《数据结构》是计算机科学与技术相关专业的基础课程之一。

本课程旨在通过理论与实践相结合的方式,培养学生具备良好的数据结构基础、灵活运用和设计数据结构的能力,并通过算法分析、问题求解等方式培养学生的编程思维和创新能力。

二、教学目标1. 理解数据结构的基本概念和原理,包括栈、队列、链表、树、图等基本数据结构的应用场景与实现。

2. 掌握数据结构的基本算法与操作,包括插入、删除、查找、排序等常用操作的实现与分析。

3. 培养学生良好的编程实践能力,能够灵活运用不同的数据结构解决实际问题。

4. 培养学生团队合作精神和沟通能力,能够与他人合作设计和实现复杂的数据结构与算法。

三、教学内容1. 数据结构基础1.1 数据结构与算法的关系1.2 抽象数据类型与数据结构1.3 算法复杂度与评估方法2. 线性结构2.1 线性表的基本概念与实现2.2 栈与队列的定义与应用2.3 数组与链表的对比与选择3. 树形结构3.1 树的基本概念与性质3.2 二叉树的存储与遍历3.3 二叉搜索树与平衡树的应用4. 图结构4.1 图的基本概念与表示方法4.2 图的遍历与连通性算法4.3 最短路径与最小生成树算法5. 排序与查找5.1 常用排序算法的实现与性能分析 5.2 二分查找算法与应用5.3 哈希表的概念与应用四、教学方法1. 理论讲解:通过授课方式向学生讲解数据结构的基本概念、原理和算法分析方法。

2. 实验实践:通过编写程序实践,巩固和加深学生对数据结构的理解与应用能力。

3. 课堂讨论:鼓励学生在课堂上提问和讨论问题,促进学生思维的活跃和沟通能力的培养。

4. 课程设计:结合实际案例,进行小组项目设计,培养学生团队合作和创新能力。

五、教学评价与考核1. 平时成绩:包括课堂讨论与实验成绩,在课堂上主动提问、积极参与实验的学生将获得较高成绩。

2. 作业与报告:包括编程作业、实验报告等,学生需要按时完成,并按要求展示实现结果与思路。

《数据结构》实验教学大纲

《数据结构》实验教学大纲

《数据结构》实验教学大纲(Data Structure)课程代码:0610009实验学时:25学时先修课程:《C语言程序设计》、《离散数学》一、目的要求目的:通过实验,可使学生深刻理解各种逻辑结构、存储结构的特性,培养通过实际问题分析其数据对象、基本操作,选择逻辑结构、存储结构灵活应用基本算法,并设计出具有专业水准的应用程序的能力。

要求:熟悉VC++的编程和调试环境,根据实验内容和要求,认真完成程序编写、上机调试、运行结果分析,书写实验报告。

二、实验项目内容及学时分配实验一、单链表的建立、删除和插入(2学时)1. 实验目的要求熟悉C语言的上机环境,进一步掌握C语言的结构特点。

掌握线性表的链式存储结构——单链表的定义及C语言实现。

2. 实验主要内容实现线性表在链式存储结构——单链表中的各种基本操作。

3. 实验类别:专业基础4. 实验类型:验证5. 实验要求:必做6. 主要仪器:微型计算机或相应的设备实验二、栈的建立、插入和删除(2学时)1. 实验目的要求掌握栈的顺序表示和结构特点,描述方法及有关概念。

2. 实验主要内容实现顺序栈的建立、插入、删除的操作算法。

3. 实验类别:专业基础4. 实验类型:验证5. 实验要求:必做6. 主要仪器:微型计算机或相应的设备实验三、队列的建立、插入和删除(2学时)1. 实验目的要求掌握队列的表示和结构特点,描述方法及有关概念。

2. 实验主要内容实现队列的建立、插入、删除的操作算法。

3. 实验类别:专业基础4. 实验类型:验证5. 实验要求:必做6. 主要仪器:微型计算机或相应的设备实验四、模式串的匹配(3学时)1. 实验目的要求掌握串的结构特点和各种基本操作。

2. 实验主要内容实现串的模式匹配算法。

3. 实验类别:专业基础4. 实验类型:验证5. 实验要求:必做6. 主要仪器:微型计算机或相应的设备实验五、稀疏矩阵的转置(2学时)1. 实验目的要求掌握稀疏矩阵的结构特点,描述方法及有关概念。

《数据结构与算法实验》课程教学大纲

《数据结构与算法实验》课程教学大纲
/
3
实验
/
/
四、考核方式
序号
考核环节
操作细节
总评占比
1
实验
1.本课程36个学时实验,共12次实验。
2.成绩采用百分制,根据实验完成情况评分。
3.考核学生对数据结构与算法知识的应用能力,针对12个独立的问题,能够根据题目功能和性能要求确定设计目标,从技术角度优选解决方案获得有效结果。
90%
2
考勤
随机点名、刷卡点名等
实验
/
/
11
第11题
11.任务调度(Schedule)
根据初始优先级设置,按照调度原则,预测一批计算任务的执行序列。
/
3
实验
/
/
12
第12题
12.循环移位(Cycle)
所谓循环移位是指。一个字符串的首字母移到末尾,其他字符的次序保持不变。比如ABCD经过一次循环移位后变成BCDA
给定两个字符串,判断它们是不是可以通过若干次循环移位得到彼此
/
3
实验
/
/
10
第10题
10.玩具(Toy)
ZC神自小就是这方面的天才,他往往是一只手还没揩干鼻涕,另一只手已经迅速地将处于任意状态的玩具复原至如图(a)所示的初始状态。物质极其匮乏的当年,ZC神只有一个这样的玩具;物质极大丰富的今天,你已拥有多个处于不同状态的玩具。现在,就请将它们全部复原吧。
/
3
《数据结构与算法实验》教学大纲
一、课程基本信息
课程名称
数据结构与算法实验
Data Structure and Algorithm Experiment
课程编码
CST310411015

《数据结构》实验教学大纲.doc

《数据结构》实验教学大纲.doc

《数据结构》实验教学大纲一、制定实验教学大纲的依据根据《数据结构》课程教学大纲制定。

二、本课程实验教学在培养实验能力中的地位和作用数据结构是一门理论性和实践性非常强的课程,学生仅仅通过课堂教学来获取理论知识是远远不够的,必须加强实践教学,通过亲自动手,针对实际问题和典型的数据结构和算法, 设计解决方案,并上机输入,编辑,检查,修改,调试和运行程序,并从成功和失败的体验中得到锻炼,才能够掌握和运用所学到的理论知识来解决实际问题,达到学以致用的目的。

三、实验教学的目的和要求计算机编程中加工处理的对象是数据,而数据具有一定的组织结构,所以学习编写计算机程序仅仅了解计算机语言是不够的,还必须掌握数据组织、存储和运算的一般方法,这是数据结构课程中学习和研究的内容。

具体要求如下:1、熟练掌握C语言的编辑、编译、调试程序;2、会书写类C语言的算法,并将算法转变为程序实现;3、正确理解各种数据结构的逻辑特性、存储表示和基本操作的算法实现;4、有较强的逻辑分析能力;5、针对不同的问题选择合适的数据结构,提高算法设计的能力和动手实验的技能;6、学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术;7、本课程的学习过程也是复杂程序设计的训练过程,要求学生编写的程序结构清楚、正确易读,符合软件工程的规范,从而培养学生的数据抽象能力。

四、学时、教学文件及参考书学时:本课程总学时为48学时,其中实验为14学时,占总学时的29%o教学文件:《数据结构实验指导书》。

参考书:1、朱战立,《数据结构一使用C语言》,西安交通大学出版社,2004.12、文益民,《数据结构基础教程》,清华大学出版社,2005.13、严蔚敏、吴伟民,《数据结构》(C语言版),清华大学出版社,1997.4五、实验项目的内容和要求实验项目山验证性实验和综合性实验两部分组成。

数据结构实验教学大纲-四年制本科教学大纲.

数据结构实验教学大纲-四年制本科教学大纲.

四年制本科教学大纲《数据结构实验》淮阴师范学院一、说明适用专业计算机科学与技术总学时 36 总学分(一实验目的、要求【目的】数据结构是计算机科学的算法理论基础和软件设计的技术基础, 主要研究信息的逻辑结构及其基本操作在计算机中的表示和实现, 是计算机专业的核心课程, 也是其他相关专业的热门选修课。

本课程的另一重要教学目的是训练学生进行复杂程序设计的技能和培养良好程序设计的习惯,要做到这点,上机实习是重要的。

通过完成本实验课的实验,学生应学会和掌握本课程的基本和重点知识;深刻理解逻辑结构、物理结构、算法设计之间的关系;初步学会算法分析的方法, 并能在一定的算法范围内运用所掌握的分析方法进行算法分析; 训练并具有进行复杂程序设计的能力,养成良好程序设计的习惯。

【要求】1.线性表顺序及链式存储结构的比较和应用2.栈的应用 -表达式求值3.循环队列的实现4.掌握二叉树及其应用5.掌握哈夫曼树的建立与哈夫曼编码算法6.掌握图的遍历算法、最小生成树算法7.查找技术的实现8.掌握快速排序与冒泡排序算法(二实验内容的选取和实施中注意的问题采用分组实验方式, 一般是一人为一组, 在教师指导下独立完成。

为使本实验课程达到预期的效果,对学生提出以下几点要求:1.实验前,认真阅读实验要求,弄懂实验原理,明确实验目的、内容、方法和步骤, 在实验前写好程序代码;2.实验过程中,要注意程序设计的科学性、合理性;要细心观察实验过程中的现象提示和结果,及时进行修改;3.严格遵守有关操作规程和实验室规则。

4.考核与报告:每次实验后,学生将实验结果等内容写在实验报告纸上。

指导教师对每份实验报告进行审阅、评分。

实验课的成绩记入课程平时成绩,占总成绩的20%。

(三考核方式与要求实验考核为 20分,由每个实验者平时实际操作能力和各种实验报告成绩相加 1.平时实际操作能力成绩:教师根据学生在实验中的综合表现给出分数占 60%。

具体由操作能力,结果正确与否,独立工作能力三个部分组成2.各种实验报告成绩占 40%(四实验项目与时数安排序号实验名称时数类型内容1 线性表顺序及链式存储结构的比较和应用4 综合1.线性表的各种存储结构2.各种存储结构上进行插入、删除等操作的算法3.通过线性表结构解决现实中的一些问题2 栈的应用 -表达式求值综合 1.栈的顺序存储结构的实现2.应用操作符、操作数两个工作栈来实现表达式求值的算法3 循环队列的实现综合 1.循环队列的实现2.基于循环队列的各种算法实现4 二叉树及其应用综合 1. 按照先序遍历创建二叉树。

《数据结构》教学大纲

《数据结构》教学大纲

《数据结构》教学大纲数据结构教学大纲一、课程介绍1.1课程名称:数据结构1.2学分:3学分1.3先修课程:计算机基础1.4课程性质:必修课程1.5学习方式:课堂讲授、实践操作、实验、课程作业二、教学目标2.1知识目标通过本课程的学习,学生应该掌握以下知识:-基本数据结构的概念和特性,包括数组、链表、栈、队列、树和图等;-常用的数据结构算法,如查找、排序、插入和删除等;-理解数据结构的时间复杂度和空间复杂度,并能进行分析和评估;-能够选择合适的数据结构和算法来解决实际问题。

2.2能力目标-能够运用所学的数据结构和算法解决实际问题;-能够分析和评估不同数据结构和算法的优劣;-具备良好的编程能力,能够实现数据结构的基本操作;-能够进行抽象思维和问题建模,将实际问题转化为数据结构的操作。

2.3态度目标-具备良好的团队合作和沟通能力,能够与他人合作解决问题;-具备批判性思维和创新精神,能够提出新的数据结构和算法。

三、教学内容3.1数据结构概述-数据结构的定义和分类;-数据结构与算法的关系;-数据结构的应用领域。

3.2线性表-线性表的定义和基本操作;-顺序表和链表的实现;-线性表的应用。

3.3栈和队列-栈和队列的定义和基本操作;-栈和队列的实现;-栈和队列的应用。

3.4树和二叉树-树和二叉树的定义和基本操作;-二叉树的遍历和线索化;-树和二叉树的应用。

3.5图-图的定义和基本操作;-图的存储结构和遍历算法;-图的应用。

3.6查找和排序-查找算法的分类和基本思想;-顺序查找和二分查找;-排序算法的分类和基本思想;-冒泡排序、插入排序和快速排序。

四、教学方法4.1讲授法:通过课堂讲授,向学生介绍数据结构的概念、特性和应用,讲解基本操作和算法的原理和实现方法。

4.2实践操作:通过编程实践和课程作业,让学生运用所学的数据结构和算法解决实际问题,加深对知识的理解和运用能力。

4.3实验:通过实验,让学生亲自操作和实验不同的数据结构,加深对数据结构和算法的理解。

计算机专业《数据结构》教学大纲

计算机专业《数据结构》教学大纲

计算机专业《数据结构》教学大纲一、课程基本信息课程名称:数据结构课程类别:专业基础课课程学分:X学分课程总学时:X学时适用专业:计算机专业二、课程的性质、目的和任务(一)课程性质《数据结构》是计算机专业的一门重要的专业基础课,它是介于数学、计算机硬件和计算机软件之间的一门核心课程,不仅是程序设计的基础,也是设计和实现操作系统、数据库系统、编译系统及其他系统程序和大型应用程序的重要基础。

(二)课程目的通过本课程的学习,使学生能够掌握数据结构的基本概念、基本原理和基本算法,培养学生分析问题和解决问题的能力,为后续课程的学习和今后从事软件开发工作打下坚实的基础。

(三)课程任务1、使学生掌握数据结构的基本概念和术语,包括数据、数据元素、数据对象、数据结构等。

2、使学生掌握线性表、栈、队列、串、数组、广义表、树、图等常用数据结构的逻辑结构、存储结构和基本操作的实现算法。

3、使学生掌握查找和排序的基本算法,包括顺序查找、二分查找、哈希查找、插入排序、选择排序、交换排序、归并排序等。

4、培养学生运用所学数据结构和算法知识解决实际问题的能力,能够根据具体问题选择合适的数据结构和算法,并进行算法设计和程序实现。

5、培养学生的程序设计能力和良好的编程风格,提高学生的代码可读性和可维护性。

三、课程教学内容和要求(一)绪论1、教学内容数据结构的基本概念和术语,包括数据、数据元素、数据对象、数据结构、数据类型等。

数据结构的研究内容和研究方法。

算法的基本概念和特性,包括有穷性、确定性、可行性、输入和输出。

算法的描述方法,包括自然语言描述、流程图描述、伪代码描述等。

算法的分析方法,包括时间复杂度和空间复杂度的分析。

2、教学要求理解数据结构的基本概念和术语。

了解数据结构的研究内容和研究方法。

掌握算法的基本概念和特性。

掌握算法的描述方法。

掌握算法的时间复杂度和空间复杂度的分析方法。

(二)线性表1、教学内容线性表的定义和逻辑结构。

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

《数据结构》实验教学大纲
课程代码: B03203
课程名称:数据结构
英文名称: Data Structures
课程总学时: 60 (其中理论课 46 学时,实验 14 学
时)学分: 2.5
课程类别:必修课程性质:专业基础课
先修课程:计算机导论、Java语言程序设计
面向专业:软件技术、计算机网络技术
开课单位:软件工程系
一、实验教学的性质地位和任务
数据结构实验课是计算机类专业的一门专业基础实验课,是后续专业课程的基础;该课程的主要任务是:进一步掌握和拓展所学的理论知识,初步掌握解决问题的基本结构以及建立在该结构上的算法,培养学生的综合能力;本课程主要内容包括:线性表及其应用实验,串及其应用实验,树及其应用实验,图及其应用实验,查找实验,内部排序实验;通过本实验课的学习,学生应学会分析研究计算机加工的数据结构的特性,培养数据抽象的能力,训练学生进行复杂程序设计的技能,培养良好程序设计的习惯,初步掌握算法的时间分析和空间分析的技术。

二、实验内容与要求
项目一、线性表及其应用
(1)实验目标
1.加深理解线性表的顺序表示与链式表示的意义和区别,理解不同存储结构下插入与删除操作的算法;
2.熟练掌握线性表的顺序存储方式及其插入、删除等基本操作的算法实现;
3.熟练掌握线性表的链式存储方式及其插入、删除等基本操作的算法实现;
(2)具体内容
1.设计一组输入数据并编写主程序分别调用上述算法(顺序表示的算法为InitList_Sq、ListInsert_Sq、ListDelete_Sq等,链式表示的算法为
InitList_L、ListInsert_L、ListDelete_L等),调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果,加深对有关算法的理解;
2.设计一个可以容纳40位数的求n!的程序。

(3)主要仪器设备与工具
PC机一台/每人。

项目二、栈及其应用
(1)实验目标
1.理解栈的概念;
2.掌握利用数组实现栈的基本操作;
3.应用栈结构来解决表达式求值的问题。

(2)具体内容
1.完成对堆栈中数据的存取(入栈 ,出栈,访问栈中元素);
2.利用堆栈来实现求前序表达式或后序表达式的方法。

(3)主要仪器设备与工具
PC机一台/每人。

项目三稀疏矩阵运算
(1)实验目标
掌握三元组法存储稀疏矩阵的方法及相关的基本操作,用数组存放矩阵的三元组,矩阵的行数和列数及非0数据从键盘输入,若两个矩阵不能相乘则输出“Error”
(2)具体内容
编写一个程序实现下列目标。

1.用三元组法存放稀疏矩阵
2.求出矩阵相乘结果
3.输出结果矩阵
(3)主要仪器设备与工具
PC机一台/每人。

项目四、树及其应用实验
(1)实验目标
1.掌握二叉树链表的结构和二叉排序树的建立过程;
2.掌握二叉排序树的插入和删除操作;
3.加深对二叉树的理解。

(2)具体内容
1.编写二叉排序树的基本操作函数
① 查找结点函数 SearchNode( TREE *tree,int key, TREE **pkpt , TREE **kpt)
② 二叉排序树插入函数 InsertNode (TREE **tree,int key )
③ 二叉排序树删除函数 DeleteNode (TREE **tree,int key)
2.调用上述函数实现下列操作
① 初始化二叉树
② 调用插入函数建立二叉排序树
③ 调用查找函数在二叉树中查找指定的结点
④ 调用删除函数删除指定的结点,并动态地显示删除结果。

(3)主要仪器设备与工具
PC机一台/每人。

项目五、图及其应用实验
(1)实验目标
1.掌握图的邻接矩阵、邻接表的表示方法;
2.掌握建立图的邻接矩阵的算法;
3.掌握建立图的邻接表的算法;
4.加深对图的理解。

(2)具体内容
1.编写图的基本操作函数
① 建立图的邻接表,邻接矩阵 Create_Graph(LGraph lg,
MGraph mg)
② 邻接表表示的图的递归深度优先遍历 LDFS(LGraph g,int i )
③ 邻接矩阵表示的图的递归深度优先遍历 MDFS(MGraph g,
int i, int vn)
④ 邻接表表示的图的广度优先遍历 LBFS(LGraph g, int s, int n)
⑤ 邻接矩阵表示的图的广度优先遍历 MBFS(LGraph g, int s,
int n)
2.调用上述函数实现下列操作
① 建立一个图的邻接矩阵和图的邻接表
② 采用递归深度优先遍历输出图的邻接矩阵
③ 采用递归深度优先遍历输出图的邻接表
④ 采用图的广度优先遍历输出图的邻接表
⑤ 采用图的广度优先遍历输出图的邻接矩阵
(3)主要仪器设备与工具
PC机一台/每人。

项目六、查找实验
(1)实验目标
1.掌握在数组上进行各种查找的方法和算法;
2.深刻理解各种方法的特点,并加以灵活运用。

(2)具体内容
1.编写各种查找方法的基本操作函数
① 无序线性表的顺序查找 search1( int *k,int n, int key)
② 有序线性表的顺序查找 search2( int *k , int n , int key)
③ 折半查找 bin_search(int *k , int n , int key)
2.调用上述函数实现下列操作:
① 对给定的数组E[N]={213,111,222,77,400,300,987,1024,632,555}调用无序线性表的顺序查找函数进行查找。

② 调用有序线性表的顺序查找函数进行查找。

③ 调用折半法查找函数进行查找。

(3)主要仪器设备与工具
PC机一台/每人。

项目七、内部排序实验
(1)实验目标
1.掌握在数组上进行各种排序的方法和算法;
2.理解各种方法的特点,并能灵活运用。

(2)具体内容
1.编写各种排序方法的基本操作函数
① 选择排序 ss_sort( int e [ ],int n )
② 直接插入排序 si_sort( int e[ ],int n)
③ 冒泡排序 sb_sort( int e[ ],int n )
④ 二路合并排序 Merge( int e [ ],int n )
2.调用上述函数实现下列操作
① 对给定的数组E[N]={213,111,222,77,400,300,987,1024,632,555}调用选择排序函数进行排序。

② 调用直接插入函数进行排序。

③ 调用冒泡函数进行排序。

④ 调用二路归并排序函数进行排序。

(3)主要仪器设备与工具
PC机一台/每人。

三、学时分配
四、考核方式与成绩评定
本实验课程采用随堂考查。

考查形式中:预习报告、上机调试、实验报告各占20%、50%、30%。

五、大纲说明
1.本大纲实验课时仅为课堂上机课时,要达到大纲要求必须有课外时间保障:课前准备、课堂上机调试与课后上机练习所占时间比为:4:1:2。

2.本实验主要以每个实验项目的实验目标为基准,以实验内容为主要知识点,采用过程式考核。

六、推荐教材及参考书
[1] 朱战立.数据结构——Java语言描述.北京:清华大学出版社,2005.
[2] 严蔚敏,吴伟民.数据结构(C语言版).北京:清华大学出版,1999.
[3] 李春保.数据结构习题与解析(C语言篇).北京:清华大学出版社,2001.
执笔:
审核:
审批:。

相关文档
最新文档