《数据结构》实验大纲(132)
- 格式:doc
- 大小:57.50 KB
- 文档页数:5
《数据结构》实验教学大纲(Data Structure)一、课程说明课程编码:24300110、课程总学时(理论总学时/实践总学时)54 (44/10)、周学时3、学分3、开课学期5。
1、课程性质专业选修课。
2、适用专业与学时分配:教育技术学专业,本科二年级学生。
教学内容与时间安排表章次教学内容教学时数总学时理论实验第一章数据结构概论22第二章线性表642第三章栈和队列642第四章串44第五章数组和广义表44第六章树12102第七章图66第八章排序844第九章查找44第十章文件223、课程教学目的与要求:通过本课程的学习,使学生学会分析计算机处理的数据结构的特性,以便在实际应用中选择适当的逻辑结构、存储结构及相应的算法,培养学生的数据抽象能力。
4、本门课程与其他课程的关系:数据结构是高等院校教育技术学专业本科生方向模块必选课程,它要以C语言高级程序设计为基础,目的是为了培养学生的思维能力,处理问题的能力,也为后续课程(面向对象程序设计、软件工程等)打下坚实基础。
5、推荐教材及参考书目黄刘生编著高等教育出版《数据结严蔚清华大学出版《数据结习题清华大学出版《数据结刘大有、唐海鹰等高等教育出版殷人昆、陶永雷等清华大学出版《C/C++与数据结构》清华大学出版《数据结构一一用c 语言描述》唐策善、教材:主要参考书:《数据结构(用面向对象方法与C++描述)》6、课程教学方法与手段:采用课程讲授结合实验教学,适当结合自主学习方法。
7、课程考试方法与要求:课程考核:总成绩=试卷成绩X70% +实验成绩X20% +平时成绩X 10%实验成绩=E 各单项实验项目成绩(实验报告)/实验项目数,(教师可 根据学生完成实验的具体情况,对结果做适度调整)8、实验教学内容安排:实验一线性表 基础性 2学时 实验目的(1) 熟练掌握线性表的建立、输出、插入、删除等操作。
(2)运用线性表的操作解决一些简单的实际问题。
实验内容进入Turbo C 的工作环境,编写一个程序实现顺序表、链表的基本操作一建立、输出、 插入、删除、查找算法,并在主函数中调用这些函数实现一些简单功能实现简单应用。
《数据结构课程实验》大纲一、《数据结构课程实验》的地位与作用“数据结构”是计算机专业一门重要的专业技术基础课程,是计算机专业的一门核心的关键性课程。
本课程较系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术,并做了性能分析和比较,内容非常丰富。
本课程的学习将为后续课程的学习以及软件设计水平的提高打下良好的基础。
由于以下原因,使得掌握这门课程具有较大的难度:(1)内容丰富,学习量大,给学习带来困难;(2)贯穿全书的动态链表存储结构和递归技术是学习中的重点也是难点;(3)所用到的技术多,而在此之前的各门课程中所介绍的专业性知识又不多,因而加大了学习难度;(4)隐含在各部分的技术和方法丰富,也是学习的重点和难点。
根据《数据结构课程》课程本身的技术特性,设置《数据结构课程实验》实践环节十分重要。
通过实验实践内容的训练,突出构造性思维训练的特征, 目的是提高学生组织数据及编写大型程序的能力。
实验学时为10。
二、《数据结构课程实验》的目的和要求不少学生在解答习题尤其是算法设计题时,觉得无从下手,做起来特别费劲。
实验中的内容和教科书的内容是密切相关的,解决题目要求所需的各种技术大多可从教科书中找到,只不过其出现的形式呈多样化,因此需要仔细体会,在反复实践的过程中才能掌握。
为了帮助学生更好地学习本课程,理解和掌握算法设计所需的技术,为整个专业学习打好基础,要求运用所学知识,上机解决一些典型问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握所用到的一些技术。
数据结构中稍微复杂一些的算法设计中可能同时要用到多种技术和方法,如算法设计的构思方法,动态链表,算法的编码,递归技术,与特定问题相关的技术等,要求重点掌握线性链表、二叉树和树、图结构、数组结构相关算法的设计。
在掌握基本算法的基础上,掌握分析、解决实际问题的能力。
三、《数据结构课程实验》内容课程实验共10学时,要求完成以下五个题目:实习一约瑟夫环问题(2学时)用循环链表实现约瑟夫环问题,熟悉链表结构的使用。
《数据结构》实验教学大纲
1、实验背景:
数据结构是计算机科学的基本理论,也是计算机程序设计必备知识,
是计算机应用和算法分析的基础。
实验教学是对学生知识的指导,是计算
机程序设计实践的重要组成部分。
它是学生掌握程序设计理论知识,发展
良好的分析思维能力,培养解决问题的能力的重要途径。
本实验教学大纲
是以C语言为编程语言,以实验室的应用为主要训练,以有关数据结构课
程实验内容为主要内容,主要包括数组、线性表、栈与队列、字符串、树、图等知识,以及基于C语言的实践性实验项目,旨在让学生更深入地了解
数据结构,进而加深对电脑程序设计的理解,从而掌握计算机软件设计开
发的知识、技能和能力。
2、实验任务:
1)在学习原理部分,学习基本的数据结构知识,掌握数组、线性表、栈与队列、字符串、树、图等基本数据结构,了解数据结构的存储结构及
其基本操作;
2)在实践部分,基于C语言,让学生掌握实验的设计思路,学习程
序的设计和编码,在解决实际问题中加深对基本数据结构基础理论的理解。
《数据结构》实验课程教学大纲开课单位:宁德师范学院计算机系设置类别:非独立设课学时:18学时实验项目总数:7实验教材:《数据结构习题集与上机指导》,严蔚敏,清华大学出版社主要设备(环境):微机、C语言编程环境(VC++)一、教学目的《数据结构》是计算机科学与技术专业的一门重要的专业基础课,课程旨在使学生学会计算机加工的数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构及存储结构,并进行相应的运算。
实验是该课程实践教学的重要环节,目的是培养学生根据求解问题的性质选择合理的数据结构,提高分析、设计、编程以及控制求解算法的时间、空间复杂性的能力。
二、基本要求《数据结构》是计算机专业的专业核心基础课程,其先修课程有至少一门高级语言。
数据结构课程将覆盖计算机软件实现中的大部分的基本算法,并具有一定的深度和广度,使学生对计算机常用基础算法有一个全盘的了解;通过此课的学习,学生应该具有针对所给的问题设计和实现高效算法的能力。
通过上机实验,将使学生熟悉、掌握课堂教学中所学的大部分算法。
同时,上机实习是对学生在软件设计方面的综合训练,包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧等,以培养良好的编程风格和科学作风。
通过理论联系实际,以最终提高学生动手操作的能力以及分析问题的能力。
三、实验项目设置四、实验项目说明实验一:顺序表一、目的:熟练掌握线性表的基本操作在顺序存储结构上的实现二、要求:掌握顺序表的建立、查找、插入、删除等基本操作。
三、示例程序:四、实验内容1、分析、理解程序。
2、完成插入操作的函数设计。
3、调试程序:建立12个元素的顺序表SqList={c,h,i,n,a,w,e,l,c,o,m,e},分别实现以下操作:1)查找元素y在SqList中的位序,输出为O则表示“y不在SqList中”;2)在SqList的元素6之前插入一个新元素#,输出插入后的结果;3)删除SqList中第8个元素,输出删除后的结果实验二单链表一、目的:熟练掌握线性表的基本操作在链式存储结构上的实现二、要求:掌握单链表的建立、插入、删除等基本操作;三、示例程序:四、实验内容1、分析、理解程序,将void DeleteList(LinkList head,char *key)函数补充完整。
《数据结构实验》教学大纲一、实验课名称:数据结构实验Experiments for Data Structures二、实验课性质:独立设课,专业基础必修课三、适用专业:数学与应用数学;信息与计算科学;统计学四、采用教材及参考书:1. 严蔚敏,吴伟民等.数据结构题集(C语言版).北京:清华大学出版社,1999.2. 严蔚敏,吴伟民.数据结构(C语言版).北京:清华大学出版社,1997.3. 高一凡. 数据结构算法实现及解析. 陕西:西安电子科技大学出版社,2004.4. 徐孝凯. 数据结构课程实验. 北京:清华大学出版社,2002.五、学时学分:课程总学时:36;课程总学分:1;实验课总学时:36七、实验教学的目的和要求:计算机编程中加工处理的对象是数据,而数据具有一定的组织结构,所以学习编写计算机程序仅仅了解计算机语言是不够的,还必须掌握数据组织、存储和运算的一般方法,这是数据结构课程中学习和研究的内容。
由于数据结构的原理和算法较抽象,而该课程一般在本科低年级开设,对于计算机程序设计知识的初学者,理解和掌握其中的原理就显得较为困难,需要加强实践教学。
具体要求如下:1.熟练掌握C语言的编辑、编译、调试程序;2.会书写类C语言的算法,并将算法转变为程序实现;3.针对不同的问题选择合适的数据结构,提高算法设计的能力和动手实验的技能;4.学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术;5.编写的程序结构清楚、正确易读,符合软件工程的规范。
八、实验项目的内容和要求:实验一:抽象数据类型的实现内容:将类C语言描述的算法转换成C源程序上机调试并通过。
要求:1)熟悉类C语言的书写规范,复习高级程序设计语言及模块化程序设计的方法(特别是函数的定义和调用),学会分析基本的算法时间复杂度和空间复杂度;2)了解抽象数据类型的定义、表示和实现方法,会利用高级语言中已存在的数据类型来说明新的结构,用已经实现的操作来组合新的操作;3)加深理解数据的逻辑结构和物理结构。
《数据结构》实验教学大纲课程编号:课程总学时:72计划学时数:36实验课类型:专业基础实验面向专业:计算机科学与技术、信息与计算科学、现代教育技术、计算机应用技术、电子商务开课时间:第二学年第一学期考核方式:笔试教材:严蔚敏,吴伟民,《数据结构》(C语言版)清华大学出版社,一、目的要求:目的:数据结构是计算机科学的算法理论基础和软件设计的技术基础,主要研究信息的逻辑结构及其基本操作在计算机中的表示和实现,是计算机专业的核心课程,也是其他相关专业的热门选修课。
本课程的另一重要教学目的是训练学生进行复杂程序设计的技能和培养良好程序设计的习惯,要做到这点,上机实习是重要的。
通过完成本实验课的实验,学生应学会和掌握本课程的基本和重点知识;深刻理解逻辑结构、物理结构、算法设计之间的关系;初步学会算法分析的方法,并能在一定的算法范围内运用所掌握的分析方法进行算法分析;训练并具有进行复杂程序设计的能力,养成良好程序设计的习惯。
要求:将书中常用算法编写成程序,上机调试,验证算法的正确性,同时理解数据结构对于软件开发的意义。
同时又能复习C语言(c++语言)的重点与难点,熟悉vc++6.0调试环境,掌握一个完整程序的构成,为今后软件设计打下基础。
二、实验项目情况汇总:三、实验成绩考核办法通过课堂上启发式讲解实验要求和任务、学生实验前自创性的准备工作、上机实验时的验证和反馈,来帮助学生理解计算机的基本原理,熟悉和掌握一些常用软件的使用,为以后的课程打下基础。
采用平时成绩和考试成绩相结合的评定方法。
每个实验都根据学生的动手能力及实验报告成绩进行综合评分。
四、主要使用的仪器设备计算机及VC++6.0软件。
《数据结构》实验教学大纲(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. 实验目的要求掌握稀疏矩阵的结构特点,描述方法及有关概念。
数据结构实验大纲数据结构实验大纲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·法律名词及注释●数据结构:指计算机中用于组织和存储数据的一种方式,它定义了数据之间的关系和操作。
《数据结构》课程课内上机大纲课内上机学时:2 课程总学时:64适用专业:计算机科学与技术(考试)实验项目数:1、软件工程(考试)、教育技术学(考试)、网络工程(考试)、通信工程(考试)开课教研室:计算机工程大纲执笔人:朱战立一、本课内上机课的基本理论和目的数据结构是计算机学科的核心专业基础课程,是计算机程序设计的重要理论和实践基础。
本课程讨论了软件设计中经常遇到的线性表、堆栈、队列、串、数组、二叉树、图等典型数据结构的设计方法以及各种典型排序和查找算法的性能和设计方法,并介绍了各种典型数据结构的应用。
数据结构课程是一门理论和实践相结合的课程。
课内上机是为训练学生的实际程序设计能力安排的、包含在教学课时内的教学内容。
课内上机目的是:(1)进一步深入理解相关部分的基本概念和授课内容。
(2)进一步提高实际动手进行程序设计的能力。
二、本课内上机课的基本要求(1)认真阅读掌握和课内上机相关的教材内容。
(2)自己编程,可以参考别人的程序设计方法,但不得抄袭别人的程序。
(3)程序有错误时,尽量先自己调试,在自己能力达不到时,可请教同学或询问老师。
(4)及时完成课内上机报告。
三、设置的课内上机项目、课内上机内容和学时分配实验一顺序表的基本操作和简单程序(2学时)课内上机内容如下:(1)阅读教材上顺序表的算法代码,并自己键入这些代码。
(2)设计一个使用顺序表的应用程序。
(3)分析应用程序的运行情况。
四、本课内上机课的考核方法与评分方法本课内上机不是单独开课,是附属于数据结构课程的课内上机,因此,不单独考试。
其成绩和数据结构课程考试结合起来综合评分。
审定人:批准人:。
《数据结构》课程实验教学大纲一、实验课名称:中文名:数据结构英文名: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)实验内容:利用循环队列模拟舞伴配对问题:在舞会上,男、女各自排成一队。
舞会开始时。
依次从男队和女队的队头各出一人配成舞伴。
《数据结构》实验教学大纲
实验学时:32 实验个数:7 实验学分:1
课程性质:专业必修课适用专业:计算机科学与技术、网络工程、软件工程
教材及参考书:
1.《数据结构(C语言版)》,严蔚敏吴伟民,北京:清华大学出版社,2004
2.《数据结构题集(C语言版)》实习题部分,北京:清华大学出版社,2004;
3.《数据结构实验教程》,王玲刘芳等著,成都:四川大学出版社,2002
大纲执笔人:刘芳大纲审定人:郭涛
一、实验课的性质与任务
本课程实验大纲是面向计算机相关专业学生开设的《数据结构》实验课计划指导大纲,是依据《数据结构》课程教学计划指导大纲编制。
计算机编程中加工处理的对象是数据,而数据具有一定的组织结构,所以学习编写计算机程序仅仅了解计算机语言是不够的,还必须掌握数据组织、存储和运算的一般方法,这是数据结构课程中学习和研究的内容。
由于数据结构的原理和算法较抽象,而该课程一般在本科低年级开设,对于计算机程序设计知识的初学者,理解和掌握其中的原理就显得较为困难。
数据结构实验课程着眼于数据结构原理和应用的结合点,使读者学会如何将书上学到的知识用于解决实际问题,培养软件工作需要的动手能力;另一方面,能使书上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。
本实验课程主要结合数据结构课程的教学大纲的相应内容,设计了7个实验(包括验证型、综合型、设计型实验),力求提高学生的动手能力,做到理论和实践相结合。
使学生在实验过程中进一步掌握典型数据结构的逻辑结构、存储结构及算法的程序实现,并训练问题的综合分析能力和编程能力,形成良好的编程风格,为后续课程的学习奠定坚实的理论和实践基础。
二、实验课程目的与要求
1.实验目的
根据《数据结构》课程的任务与要求,帮助学生拓宽知识面。
并达到以下教学要求:(1)学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术;
掌握各种基本数据结构的逻辑结构和存储结构及相应算法。
(2)本课程的学习过程也是复杂程序设计的训练过程,要求学生编写的程序结构清楚、正确易读,符合软件过程的规范,从而培养学生的数据抽象能力;
(3)通过若干数据结构应用实例,引导学生学习数据类型的使用,为今后学习面向对象
的程序做一些铺垫。
2. 实验要求
(1)熟悉各种基本数据结构的定义,性质和特点,初步掌握算法分析的基本技巧以及如何根据实际问题设计一个有效的算法。
(2)会书写类C语言的算法,并将算法转变为程序实现。
(3)正确理解各种数据结构的逻辑特性和存储表示和基本操作的算法实现,有较强的逻辑分析能力。
(4)针对问题的不同选择合适的数据结构,提高算法设计的能力和动手实验的技能。
三、实验内容安排:
实验一抽象数据类型的表示与实现
(基本操作、验证型实验2学时)
1.目的要求:
(1)熟悉类C语言的描述方法,学会将类C语言描述的算法转换为C源程序实现;
(2)理解抽象数据类型的定义,编写完整的程序实现一个抽象数据类型(如三元组);
(3)认真阅读和掌握本实验的参考程序,上机运行程序,保存和打印出程序的运行结果,并结合程序进行分析。
2.实验内容:
(1)编程实现对一组从键盘输入的数据,计算它们的最大值、最小值、平均值等,并输出。
要求:将计算过程写成一个函数,并采用引用参数实现值的求解。
(2)编程实现抽象数据类型三元组的定义、存储和基本操作,并设计一个主菜单完成各个功能的调用。
注:(1)为必做题,(2)选做。
3.主要仪器设备及软件
(1)PC机
(2)Turbo C 2.0 或Visual C++
实验二线性表及其实现
(基本操作、验证型实验4学时)
1.目的要求:
(1)熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现,以线性表的各种操作(建立、插入、删除等)的实现为实验重点;
(2)通过本次实验帮助学生加深对顺序表、链表的理解,并加以应用;
(3)掌握循环链表和双链表的定义和构造方法
2.实验内容:
(1)编程实现线性表两种存储结构(顺序存储、链式存储)中的基本操作的实现(线性表的创建、插入、删除和查找等),并设计一个菜单调用线性表的基本操作。
(2)建立一个按元素递增有序的单链表L,并编写程序实现:
a)将x插入其中后仍保持L的有序性;
b)将数据值介于min和max之间的结点删除,并保持L的有序性;
c)(选做)将单链表L逆置并输出;
(3)编程实现将两个按元素递增有序的单链表合并为一个新的按元素递增的单链表。
注:(1)为必做题,(2)~(3)选做。
3.主要仪器设备及软件
(1)PC机
(2)Turbo C 2.0 或Visual C++
实验三栈和队列及其应用
(验证型、设计型实验6学时)
1.目的要求:
(1)掌握栈和队列这两种特殊的线性表,熟悉它们的特性,在实际问题背景下灵活运用它们;
(2)本实验训练的要点是“栈”的观点及其典型用法;
(3)掌握问题求解的状态表示及其递归算法,以及由递归程序到非递归程序的转化方法。
2.实验内容:
(1)编程实现栈在两种存储结构中的基本操作(栈的初始化、判栈空、入栈、出栈等);
(2)应用栈的基本操作,实现数制转换(任意进制);
(3)编程实现队列在两种存储结构中的基本操作(队列的初始化、判队列空、入队列、出队列);
(4)利用栈实现任一个表达式中的语法检查(括号的匹配)。
(5)利用栈实现表达式的求值。
注:(1)~(2)必做,(3)~(5)选做。
3.主要仪器设备及软件
(1)PC机
(2)Turbo C 2.0 或Visual C++
实验四字符串、稀疏矩阵实验
(验证型实验4学时)
1.目的要求:
(1)熟悉字符串类型的实现方法,并完成串的一些基本操作;
(2)掌握稀疏矩阵的三元组顺序表存储表示,并实现矩阵的转置运算。
2.实验内容:
(1)编程实现两个串S1和S2的比较。
(要求自己设计串的存储结构,并编写比较函数,不要调用系统提供的函数)
(2)编程实现稀疏矩阵的三元组顺序表示方法及基本操作的实现(建立、输出、转置等)。
(3)编程实现稀疏矩阵的十字链表存储表示及基本操作的实现(建立、输出等)。
注:(2)必做,(1)(3)选做。
3.主要仪器设备及软件
(1)PC机
(2)Turbo C 2.0 或Visual C++
实验五二叉树及其应用
(验证型、综合型实验6学时)
1.目的要求:
(1)通过实验掌握二叉树的两种基本的存储结构,及二叉树的建立、遍历,并加以应用。
(2)Huffman树建立、编码。
2.实验内容:
(1)按先序次序输入二叉树中结点的值,建立一棵以二叉链表作存储结构的二叉树,然后按先序、中序、后序顺序分别遍历这棵二叉树,并完成二叉树的相应信息
的统计(如各种结点数目、二叉树的高度等);
(2)建立一棵二叉排序树,并对其进行先序、中序、后序遍历。
(3)应用队列结构实现二叉树的层次遍历。
(4)设计一个完整的编码系统:针对一篇文档,统计各个字符的出现次数,并为其设计Huffman编码。
注:(1)~(2)必做,(3)~(4)选做。
3.主要仪器设备及软件
(1)PC机
(2)Turbo C 2.0 或Visual C++
实验六图及其应用
(验证型、综合型实验6学时)
1.目的要求:
(1)通过完成本实验,掌握图的两种基本的存储结构(邻接矩阵、邻接表),以及图的基本算法实现(建立、遍历),并能运用图结构分析解决一些实际问题。
(2)本实验训练的要点是:图的两种基本存储结构,及各种操作的算法实现(建立、遍历、图的典型应用)。
2.实验内容:
(1)建立无向图和有向图的邻接矩阵存储,计算顶点的度,并输出图的基本信息。
(2)建立有向图的邻接表存储表示,并根据存储计算顶点的出度和入度,然后输出图的基本信息。
(3)编写完整的程序实现AOV网的拓扑排序。
(4)编程求AOE网的关键路径。
(5)编程实现单源点最短路径的Dijkstra算法。
注:(1)~(2)必做,(3)~(5)选做。
3.主要仪器设备及软件
(1)PC机
(2)Turbo C 2.0 或Visual C++
实验七查找和排序算法的实现
(基本操作、验证型实验4学时)
1.目的要求:
(1)学生在实验中体会各种查找和内部排序算法的基本思想、适用场合,理解开发高效算法的可能性和寻找、构造高效算法的方法。
(2)掌握运用查找和排序解决一些实际应用问题。
2.实验内容:
(1)编程实现一种查找算法(如折半查找、二叉排序树的查找、哈希查找等),并计算相应的ASL。
(2)编程实现一种内部排序算法(如插入排序、快速排序等)。
3.主要仪器设备及软件
(1)PC机
(2)Turbo C 2.0 或Visual C++。