zzu-数据结构-实验大纲
《数据结构课程实验》大纲

《数据结构课程实验》大纲一、《数据结构课程实验》的地位与作用“数据结构”是计算机专业一门重要的专业技术基础课程,是计算机专业的一门核心的关键性课程。
本课程较系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术,并做了性能分析和比较,内容非常丰富。
本课程的学习将为后续课程的学习以及软件设计水平的提高打下良好的基础。
由于以下原因,使得掌握这门课程具有较大的难度:(1)内容丰富,学习量大,给学习带来困难;(2)贯穿全书的动态链表存储结构和递归技术是学习中的重点也是难点;(3)所用到的技术多,而在此之前的各门课程中所介绍的专业性知识又不多,因而加大了学习难度;(4)隐含在各部分的技术和方法丰富,也是学习的重点和难点。
根据《数据结构课程》课程本身的技术特性,设置《数据结构课程实验》实践环节十分重要。
通过实验实践内容的训练,突出构造性思维训练的特征, 目的是提高学生组织数据及编写大型程序的能力。
实验学时为10。
二、《数据结构课程实验》的目的和要求不少学生在解答习题尤其是算法设计题时,觉得无从下手,做起来特别费劲。
实验中的内容和教科书的内容是密切相关的,解决题目要求所需的各种技术大多可从教科书中找到,只不过其出现的形式呈多样化,因此需要仔细体会,在反复实践的过程中才能掌握。
为了帮助学生更好地学习本课程,理解和掌握算法设计所需的技术,为整个专业学习打好基础,要求运用所学知识,上机解决一些典型问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握所用到的一些技术。
数据结构中稍微复杂一些的算法设计中可能同时要用到多种技术和方法,如算法设计的构思方法,动态链表,算法的编码,递归技术,与特定问题相关的技术等,要求重点掌握线性链表、二叉树和树、图结构、数组结构相关算法的设计。
在掌握基本算法的基础上,掌握分析、解决实际问题的能力。
三、《数据结构课程实验》内容课程实验共10学时,要求完成以下五个题目:实习一约瑟夫环问题(2学时)用循环链表实现约瑟夫环问题,熟悉链表结构的使用。
《数据结构》实验大纲

《数据结构》实验教学大纲课程编号:课程总学时:72计划学时数:36实验课类型:专业基础实验面向专业:计算机科学与技术、信息与计算科学、现代教育技术、计算机应用技术、电子商务开课时间:第二学年第一学期考核方式:笔试教材:严蔚敏,吴伟民,《数据结构》(C语言版)清华大学出版社,一、目的要求:目的:数据结构是计算机科学的算法理论基础和软件设计的技术基础,主要研究信息的逻辑结构及其基本操作在计算机中的表示和实现,是计算机专业的核心课程,也是其他相关专业的热门选修课。
本课程的另一重要教学目的是训练学生进行复杂程序设计的技能和培养良好程序设计的习惯,要做到这点,上机实习是重要的。
通过完成本实验课的实验,学生应学会和掌握本课程的基本和重点知识;深刻理解逻辑结构、物理结构、算法设计之间的关系;初步学会算法分析的方法,并能在一定的算法范围内运用所掌握的分析方法进行算法分析;训练并具有进行复杂程序设计的能力,养成良好程序设计的习惯。
要求:将书中常用算法编写成程序,上机调试,验证算法的正确性,同时理解数据结构对于软件开发的意义。
同时又能复习C语言(c++语言)的重点与难点,熟悉vc++6.0调试环境,掌握一个完整程序的构成,为今后软件设计打下基础。
二、实验项目情况汇总:三、实验成绩考核办法通过课堂上启发式讲解实验要求和任务、学生实验前自创性的准备工作、上机实验时的验证和反馈,来帮助学生理解计算机的基本原理,熟悉和掌握一些常用软件的使用,为以后的课程打下基础。
采用平时成绩和考试成绩相结合的评定方法。
每个实验都根据学生的动手能力及实验报告成绩进行综合评分。
四、主要使用的仪器设备计算机及VC++6.0软件。
数据结构实验大纲

数据结构实验大纲数据结构实验大纲1·实验目的1·1 熟悉数据结构的基本概念和算法1·2 掌握数据结构在实际问题中的应用1·3 培养分析和解决问题的能力2·实验环境2·1 编程语言:C/C++2·2 开发环境:Visual Studio/Xcode/Dev-C++ 3·实验内容3·1 实验一:线性表3·1·1 顺序表的基本操作3·1·2 单链表的基本操作3·1·3 循环链表的基本操作3·1·4 双向链表的基本操作3·2 实验二:栈与队列3·2·1 栈的基本操作3·2·2 队列的基本操作3·2·3 使用栈实现表达式求值3·2·4 使用队列实现约瑟夫环3·3 实验三:串与数组3·3·1 串的基本操作3·3·2 数组的基本操作3·3·3 字符串的模式匹配算法3·3·4 多维数组的应用3·4 实验四:树与图3·4·1 二叉树的基本操作3·4·2 二叉树的遍历算法3·4·3 霍夫曼树与哈夫曼编码3·4·4 图的存储结构与基本操作 3·4·5 图的遍历算法4·实验要求4·1 完成实验指导书中的所有实验内容4·2 书写实验报告,包括实验目的、实验环境、实验过程、实验结果分析和总结4·3 实验报告要求有清晰的实验步骤和相应截图或代码4·4 实验报告中需对实验结果进行说明和评价5·实验评分5·1 实验报告(60%)5·2 实验代码(40%)5·3 完成以上要求并提交实验报告和代码截图,得到及格分数6·附件6·1 实验指导书6·2 实验代码示例7·法律名词及注释●数据结构:指计算机中用于组织和存储数据的一种方式,它定义了数据之间的关系和操作。
《数据结构》实验教学大纲.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. 按照先序遍历创建二叉树。
《数据结构》实验大纲

《数据结构》课程实验教学大纲一、实验课名称:中文名:数据结构英文名:Data Structure二、实验课性质:非独立设课三、适用专业:计算机科学与技术、网络工程、信息工程、软件工程、信息管理与系统四、采用教材及参考书:[1] 严蔚敏,吴伟民著.《数据结构(C语言版)》(第二版). 北京:清华大学出版社,2007[2] 苏仕华, 数据结构课程设计, 北京:机械工业出版社,2005.5[3] 李春葆,数据结构教程上机实验指导,北京:清华大学出版社,2005.7五、学时学分:课程总学时:54+18 ;课程总学分: 3.5 ;实验课总学时:0.5;六、实验项目名称和学时分配七、实验教学的目的和要求通过上机实践,使学生总体上掌握常用数据结构的基本概念及其不同的实现方法,理解在不同存储结构上实现不同的运算方式的意义,体会其中的编程技巧和规律。
通过本次实验课程,有助于学生熟练使用C、C++和Visual C++语言上机环境、提高高级语言编写、调试程序的能力,养成良好的程序设计风格,编写规范的文档报告,为后续的编译原理、软件工程、数据库原理等课程奠定基础。
八、实验项目的内容和要求1 实验一(1)实验项目名称:线性表的基本操作(2)实验内容:a.输入一组整型元素序列,建立线性表。
b.实现该线性表的遍历。
c.在该线性表中查找某一元素,查找成功显示查找元素,否则显示查找失败。
d.在该线性表中删除或插入指定元素。
(3)实验要求:了解线性表的基本概念,掌握线性表的两种存储结构——顺序存储和链式存储,掌握在两种存储结构上实现线性表的基本操作,掌握用C或C++或Visual C++上机调试线性表操作的基本方法。
(4)应配备的主要设备名称和台件数2 实验二(1)实验项目名称:队列的应用——舞伴配对问题(2)实验内容:利用循环队列模拟舞伴配对问题:在舞会上,男、女各自排成一队。
舞会开始时。
依次从男队和女队的队头各出一人配成舞伴。
数据结构实验大纲

《数据结构实验》课程实验教学大纲一、课程基本信息课程名称:数据结构实验英文名称: Data Structure课程编码: B/B课程性质: 独立设课课程类别:专业必修课程课程总学时: 14课程总学分: 1适用专业:计算机科学与技术/网络工程方向先修课程:高级语言程序设计,离散数学,概率论与数理统计开课系部: 计算机科学与技术系二、实验课程的目的与要求这门课程的主要任务是培养学生的算法设计能力及良好的程序设计习惯。
通过学习,要求学生能够掌握典型算法的设计思想及程序实现,能够根据实际问题选取合适的存储方案设计出简洁、高效、实用的算法,为后续课程的学习及软件开发打下良好的基础。
学习这门课程,习题和实验是两个关键环节。
学生理解算法,上机实验是最佳的途径之一。
因此,实验环节的好坏是学生能否学好《数据结构》的关键。
通过实验课程更好的训练学生算法分析及算法设计的能力。
三、主要仪器设备与实验基本要求硬件要求:微型计算机一台(Pentium或以上)软件要求:Windows操作系统,Turbo C 或VC++6.0等实验要求:1.上机前要作好充分准备,根据实验题目编写好源程序。
2.对上机操作过程中可能出现的问题预先分析,确定调试步骤和测试方法,对运行结果如何分析等。
3.上机实验完成后,认真写出实验报告,对上机中出现的问题进行分析、总结。
4.上机过程中要遵守实验室的各项规章制度,爱护实验设备,服从指导老师安排。
5.本课程的实验过程中,不得进行游戏、上网等操作。
四、实验项目名称和课内学时分配注:设计性和综合性实验如课内学时不够,学生可利用开放实验室利用课余时间完成本次实验内容。
五、实验内容及要求实验项目一实验项目名称:简单算法实验实验项目的目的和要求:1.复习C语言指针的用法2.复习C语言结构体的用法3.理解时间复杂度分析的基本方法上机实验内容:1.用指针方式编写程序:从键盘输入N个整型数据,并存入数组,要求将N个数中最大的数与第一个数交换;将其中最小的数最后一个数交换。
数据结构实验教学大纲

数据结构实验教学大纲本课程是结合理论课程《数据结构》安排的实践课程,目的是通过本课程的实践与操作,加深理论课程中数据结构与算法的理解。
数据结构实验是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
针对本实验课程的特点,分为验证性、设计性实验。
其中验证性实验要求学生能理解程序,掌握程序流程,明白程序运行结果;设计性实验让学生利用所学的知识开发小型项目,要求学生能独立分析问题,设计算法,实现程序的各项功能,得到正确的可执行程序,学会调试程序,对设计过程进行系统的总结。
三、实验目的《数据结构》课程实验的目的是训练学生进行复杂程序设计的技能和培养良好程序设计的习惯。
通过完成本实验课的实验,学生应学会和掌握本课程的基本和重点知识;深刻理解逻辑结构、物理结构、算法设计之间的关系;训练并具有进行复杂程序设计的能力,养成良好程序设计的习惯。
四、实验内容与要求(-)线性表的应用1.实验目的掌握线性表的基本结构和操作方法,培养学生灵活使用结构解决实际问题的能力。
2.实验内容一条记录有学号和成绩两个数据项,按成绩由大到小建立两个有序表(可用顺序表或者链式表实现),并合并成一个有序表(有能力的同学才做这个合并)。
第一个表输入的数据如下(学号,成绩):(1,70),(2,85),(3,75),(4,90),第二个表输入的数据如下(学号,成绩):(5.60),(6,80),(7,76),(8,50)o3.实验要求(1)编写初始化函数,插入函数,显示函数,释放函数,对两个表统一处理;(2)有能力的同学再编写合并函数,把两个有序表合并成一个新的有序表(保留原表);(3)可用顺序表或者链表实现;(二)栈的应用1.实验目的掌握栈操作的方法及相关应用。
2.实验内容假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序任意,即(□())或[(口口)]等都为正确的格式,而[(])为不正确的格式。
利用栈编程序检验表达式中的括号是否合法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》实验教学大纲
课程编号: 242008
课程名称:数据结构
英文名称:Data Structures
课程类型: 平台(学科基础平台)
学时:32
学分:1
适用对象:软件工程、计算机科学与技术
先修课程:离散数学、C语言程序设计
后续课程:操作系统、数据库系统原理、编译原理
一、课程性质、目的和任务
数据结构实验是计算机专业的一门专业基础课,其目的是通过实验巩固学生所学理论知识,提高学生分析问题和解决实际问题的能力,培养学生建立问题模型和对模型求解的能力,以及设计算法和实现算法能力,为后继课程的学习和软件开发奠定基础。
二、教学基本要求
通过实验,使学生深入理解数据结构的基本概念,掌握数据的逻辑结构、存储结构及其差异,以及各种基本操作的实现。
掌握基本的数据处理原理和方法的基础上,能够对算法进行基本的时间复杂度与空间复杂度进行设计与分析,能够选择合适的数据结构和方法进行问题求解,并采用 C 或C++ 语言设计和实现算法的能力。
三、实验内容及学时分配
实验大纲内容包括9个必做实验和2个选做实验,必做内容在规定的32个学时内完成。
实验一顺序表的基本操作的实现(必做,设计性实验,4学时)
1.实验目的
熟悉将算法转换成程序代码的过程,了解顺序表的逻辑结构特性,熟练掌握顺序表存储结构的C语言描述方法。
熟练掌握顺序表的基本操作:查找、插入、删除、合并等,掌握顺序表的随机存取特性。
2.实验内容
(1)在非递减有序的顺序表中插入一个元素x,保持顺序表有序性。
(2)顺序表元素的逆置
(3)两个(有序或无序)顺序表的合并
要求用静态分配的一维数组和动态分配的一维数组来完成实验题目。
分析静态分配的一维数组和动态分配的一维数组在顺序表基本操作实现上的共同点和区别。
对顺序表插入的算法,要求用两种方法实现:其一:自己编写实现函数;其二:调用顺序表基本操作ListInsert(SqList &L,int i,ElemType x),比较使用自己编写的插入函数和调用顺序表基本操作的函数两种实现方法之间的优缺点。
对所编写的算法进行时间复杂度分析。
实验二单链表的基本操作(必做,设计性实验,4学时)
1.实验目的
了解线性表的链式存储结构和顺序存取特性,熟练掌握线性表的链式存储结构的C语言描述方法,熟练掌握动态链表的基本操作查找、插入、定位等,能在实际应用中选择适当的链表结构。
掌握用链表表示特定形式的数据的方法,并能编写出有关运算的算法。
2.实验内容
(1)已知线性表中的元素以值递增有序排列,并以单链表作存储结构。
试写一高效算法,删除表中所有值大于mink且小于maxk的元素(若表中存在这样的元素)同时释放被删结点空间,并分析你的算法的时间复杂度(注意:mink和maxk是给定的两个参变量,它们的值可以和表中的元素相同,也可以不同)。
(2)完成单链表上的如下操作:
①逆序建立单链表
②遍历单链表(输出单链表每个元素的值)
③在单链表第5个元素前插入一个值为999的元素.
④删除单链表第5个元素.
实验三算术表达式求值(必做,设计性实验,2学时)
1.实验目的
熟练掌握栈的基本操作,深入了解栈的特性,能在实际问题的背景下灵活运用他们,并加深对这种结构的理解。
2.实验内容
设计一个程序,演示用算符优先法对算术表达式求值的过程。
以字符序列的形式从终端输入语法正确的、不含变量的整数表达式。
利用教科书表3.1给出的算符优先关系,实现对算术四则运算混合运算表达式的求值,并仿照教科书的例子3-1演示在求值中运算符栈、运算数栈、输入字符和主要操作的变化。
测试数据可以选择例子3-1的算术表达式 3*(7-2),或自选。
实验四栈和队列的基本操作的实现(必做,设计性实验,4学时)
1.实验目的
熟练掌握栈和队列的抽象数据类型,能在相应的应用问题中正确选用它们,熟练掌握栈和队列的实现方法(顺序和链式),两种存储结构和基本操作的实现算法,注意空和满的判断条件及它们的描述方法,掌握循环队列与其它顺序结构实现上的不同及解决办法,熟悉各种队列的基本操作在循环队列上的实现
2.实验内容
(1)用栈实现括号匹配的检验
(2)用栈实现形如a+b@b+a#的中心对称的字符序列的检验。
(3)用队列实现形如a+b@b+a#的中心对称的字符序列的检验
选择合适的存储结构(顺序栈或链式栈)表示栈,给出其定义,在上述存储结构上实现栈的基本操作:初始化、置栈空、入栈、出栈、取栈顶元素等。
选择合适的存储结构(循环队列)表示队列,解决队空、队满判断条件相同的矛盾,实现基于循环队列的存储结构的基本操作,初始化、队空/满判断,入队、出队、取队头元素、求队列长度等,对所写出的算法进行时间复杂度分析
实验五二叉树的递归及非递归的遍历及其应用(必做,设计性实验,4学时)
1.实验目的
熟练掌握二叉树的二叉链表存储结构的C语言实现。
掌握二叉树的基本操作-前序、中序、后序遍历二叉树的三种方法。
了解非递归遍历过程中“栈”的作用和状态,而且能灵活
运用遍历算法实现二叉树的其它操作。
2.实验内容
(1)二叉树的二叉链表的创建
(2)二叉树的前、中、后序遍历的递归算法和非递归算法的实现
(3)求二叉树中叶子结点数目的递归算法。
(4)编写求二叉树深度的递归算法。
(5)编写判断二叉树是否相似的递归算法
(6)编写求二叉树左右子树互换的递归算法
(7)编写二叉树层序遍历的算法
(8)编写判断二叉树是否是完全二叉树的算法
创建二叉树的二叉链表结构、进行先、中、后序的递归函数显示不同遍历序列,结合习题了解二叉树遍历的应用实例。
编写前、中、后、层序遍历的非遍历函数,注意用以前做过的栈和队列作辅助存储结构。
掌握用遍历算法求解其它问题的方法。
实验六Huffman树及Huffman编码的算法实现(必做,验证性实验,2学时)
1.实验目的
熟悉掌握Huffman树的构造方法及Huffman编码的应用,了解Huffman树在通信、编码领域的应用过程。
2.实验内容
(1)输入一段100—200字的英文短文,存入一文件a中。
(2)写函数统计短文出现的字母个数n及每个字母的出现次数
(3)写函数以字母出现次数作权值,建Haffman树(n个叶子),给出每个字母的Haffman 编码。
(4)用每个字母编码对原短文进行编码,码文存入文件b中。
(5)用Haffman树对文件b中码文进行译码,结果存入文件c中,比较a,c是否一致,以检验编码、译码的正确性。
实验七图的深度优先遍历(选做,验证性实验,4学时)
1.实验目的
熟悉图的数组表示法和邻接表存储结构,掌握构造有向图、无向图的算法,在掌握以上知识的基础上,熟悉图的深度优先遍历算法,并实现。
2.实验内容
(1)图的数组表示法定义及基本操作的实现。
(2)图的邻接表表示法定义及基本操作的实现。
(3)写函数实现图的深度优先遍历(分别在两种结构上)
(4)在邻接表上实现拓扑排序、关键路径的求法,在邻接矩阵上实现最短路经、最小生成树的求法。
实验八查找算法的实现(必做,验证性实验,4学时)
1.实验目的
熟练掌握顺序表和有序表的查找方法,掌握其时间复杂度的分析方法
2.实验内容
(1)验证并设计顺序表的查找(顺序查找、折半查找)算法
(2)验证二叉排序树上的查找(创建、查找、插入)算法
(3)验证Hash表查找(Hash函数定义、建立,查找,插入)算法
实验九排序算法的实现(必做,验证性实验,4学时)
1.实验目的
熟悉排序的方法、过程及原则。
掌握插入排序、快速排序、选择排序、归并排序的算法思想及实现方法,掌握其时间复杂度的分析方法。
2.实验内容
定义待排序序列的存储结构。
验证插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序中各排序方法中的一、二个排序算法。
(1)插入类排序:直接插入排序、希尔排序
(2)交换类排序:冒泡排序、快速排序
(3)选择类排序:简单选择排序、堆排序
(4)归并类排序:递归和非递归形式的归并排序
四、考核方式
实验成绩以实验考勤、实验表现和实验报告为评判,实验成绩占课程总成绩的20%。
五、推荐实验教材和教学参考书
实验教材:《数据结构习题集》严蔚敏,吴伟民清华大学出版社,2013年。
参考书:
《数据结构课程设计》苏仕华等编著,机械工业出版社,2005年
大纲制订人:邱保志,郭纯一,韩英杰
大纲审定人:
制订日期:2015.7.11。