数据结构实验教学计划48学时20120907

合集下载

数据结构的课程设计

数据结构的课程设计

数据结构的课程设计一、课程目标知识目标:1. 理解数据结构的基本概念,掌握线性表、树、图等常见数据结构的特点与应用场景。

2. 学会分析不同数据结构的存储方式和操作方法,并能运用到实际问题的解决中。

3. 掌握排序和查找算法的基本原理,了解其时间复杂度和空间复杂度。

技能目标:1. 能够运用所学数据结构知识,解决实际问题,提高编程能力。

2. 能够运用排序和查找算法,优化程序性能,提高解决问题的效率。

3. 能够运用数据结构知识,分析并解决复杂问题,培养逻辑思维能力和创新意识。

情感态度价值观目标:1. 培养学生对数据结构学科的兴趣,激发学习热情,形成主动探索和积极进取的学习态度。

2. 增强学生的团队协作意识,培养合作解决问题的能力,提高沟通表达能力。

3. 培养学生的抽象思维能力,使其认识到数据结构在计算机科学中的重要性,激发对计算机科学的热爱。

本课程针对高中年级学生,结合学科特点和教学要求,注重理论与实践相结合,培养学生的编程能力和逻辑思维能力。

通过本课程的学习,使学生能够掌握数据结构的基本知识,提高解决实际问题的能力,同时培养良好的学习态度和价值观。

在教学过程中,将目标分解为具体的学习成果,以便进行后续的教学设计和评估。

二、教学内容1. 数据结构基本概念:介绍数据结构的概念、作用和分类,重点讲解线性结构(线性表、栈、队列)和非线性结构(树、图)的特点。

2. 线性表:讲解线性表的顺序存储和链式存储结构,以及相关操作(插入、删除、查找等)。

3. 栈和队列:介绍栈和队列的应用场景、存储结构及相关操作。

4. 树和二叉树:讲解树的定义、性质、存储结构,二叉树的遍历算法及线索二叉树。

5. 图:介绍图的定义、存储结构(邻接矩阵和邻接表)、图的遍历算法(深度优先搜索和广度优先搜索)。

6. 排序算法:讲解常见排序算法(冒泡排序、选择排序、插入排序、快速排序等)的原理、实现及性能分析。

7. 查找算法:介绍线性查找、二分查找等查找算法的原理及实现。

《数据结构》课程设计时间安排表

《数据结构》课程设计时间安排表

《数据结构》课程设计时间安排表
《数据结构》课程设计时间安排表
一.设计时间:第17周——18周
二.计划安排:
1.计101,G计101、中新计101班(指导教师:汪前进、朱敏)
上机地点:二楼第1机房
2.软件101—102班(指导教师:董剑利、戴红伟)
上机地点:二楼第3机房
3.网络101—102班(指导教师:施珺、胡云)
上机地点:一楼105#机房
设计时间安排表
三.设计地点:机房、教室、学生宿舍
四.说明:
本课程设计为每位同学提供24学时的上机安排,以便能及时收集资料、编写程序实现算法、测试程序和完成设计报告;指导教师和学员必须准时到达机房,机房工作时间为上午8:30—11:30,下午2:30—5:30;指导教师要做好考勤工作和设计的指导工作;上机期间师生一律不得做与课程设计无关的事情,要严格遵守实验室规章制度,注意人身安全和设备安全。

非上机时间学生可以在教室、图书馆、宿舍等场所完成资料查阅、算法构思设计、编程调试等工作。

2011年12月13日。

数据结构与算法教学大纲

数据结构与算法教学大纲

《数据结构》教学大纲一、课程基本信息课程名称:数据结构总学时:64(理论课内学时48,上机课内学时16)课程设计:24课程类型:必修课考试形式:半开卷考试讲课对象:计算机本科建议教材:《数据结构》(C语言版)陈明编著清华大学出版社课程简介:数据结构课程介绍如何组织各种数据在计算机中的存储、传递和转换。

内容包括:数组、链接表、栈和队列、串、树与森林、图、排序、查找、索引与散列结构等。

课程以结构化程序设计语言C语言作为算法的描述工具,强化数据结构基本知识和结构化程序设计基本能力的双基训练。

为后续计算机专业课程的学习打下坚实的基础。

二、课程的教学目标“数据结构”是计算机相关专业的一门重要专业基础课,是计算机学科的公认主干课。

课程内容由数据结构和算法分析初步两部份组成。

数据结构是针对处理大量非数值性程序问题而形成的一门学科,内涵丰富、应用范围广。

它既有完整的学科体系和学科深度,又有较强的实践性。

通过课程的学习,应使学生理解和掌握各种数据结构(物理结构和逻辑结构)的概念及其有关的算法;熟悉并了解目前常用数据结构在计算机诸多领域中的基本应用。

算法分析强调最基本的算法设计技术和分析方法。

要求学生从算法和数据结构的相互依存关系中把握应用算法设计的艺术和技能。

经过上机实习和课程设计的训练,使学生能够编制、调试具有一定难度的中型程序;以培养良好的软件工程习惯和面向对象的软件思维方法。

“数据结构”的前序课是《离散数学》、《C语言程序设计与算法初步》。

三、理论教学内容的基本要求及学时分配1、序论(2学时)学习目标:熟悉各类文件的特点,构造方法以及如何实现检索,插入和删除等操作。

重点与难点:本章无。

知识点:数据、数据元素、数据结构、数据类型、抽象数据类型、算法及其设计原则、时间复杂度、空间复杂度。

2、线性表(4学时)学习目标:(1)了解线性表的逻辑结构特性是数据元素之间存在着线性关系,在计算机中表示这种关系的两类不同的存储结构是顺序存储结构和链式存储结构。

《数据结构》实验报告

《数据结构》实验报告

《数据结构》实验报告实验一一、实验目的及要求理解线性表的顺序存储结构;熟练掌握顺序表结构及其有关算法的设计;理解线性表的链式存储结构;熟练掌握动态链表结构及其有关算法的设计;根据具体问题的需要,设计出合理的表示数据的链表结构,并设计相关算法;深入了解栈和队列的特性,以便在实际问题背景下灵活运用他们;同时巩固对这两种结构的构造方法的理解。

二、实验环境硬件:计算机软件:Microsoft Visual C++三、实验内容1.以顺序表作存储结构,实现线性表的插入、删除;2.以单链表作存储结构,实现有序表的合并;3.利用栈(以顺序栈作存储结构)实现进制转换,并用队列(以链队列作存储结构)计算并打印杨辉三角。

四、源程序清单五、实验结果六、总结实验二一、实验目的及要求掌握二叉树的动态存储结构--二叉链表,掌握二叉树的三种遍历方法,会运用三种遍历的方法求解有关问题。

二、实验环境硬件:计算机软件:Microsoft Visual C++三、实验内容1.以二叉链表作存储结构,建立一棵二叉树;2.输出其先序、中序、后序遍历序列;3.求出它的深度;4.统计其叶子结点数四、源程序清单五、实验结果六、总结实验三一、实验目的及要求掌握图的存储结构及其建立算法,熟练掌握图的两种遍历算法及其应用。

二、实验环境硬件:计算机软件:Microsoft Visual C++三、实验内容1.以邻接矩阵法作存储结构,建立一个无向图;2.输出该图的深度优先搜索序列;3.输出该图的广度优先搜索序列;4. 设计算法求出该图的连通分量个数及边的数目。

四、源程序清单五、实验结果六、总结实验四一、实验目的及要求掌握顺序表的查找方法,尤其是折半查找方法。

掌握二叉排序树的查找算法。

二、实验环境硬件:计算机软件:Microsoft Visual C++三、实验内容1.建立一个顺序表,用顺序查找的方法对其实施查找;2.建立一个有序表,用折半查找的方法对其实施查找;3.建立一个二叉排序树,根据给定值对其实施查找;4.对同一组数据,试用三种方法查找某一相同数据,并尝试进行性能分析。

(完整版)数据结构实验教学手册

(完整版)数据结构实验教学手册

《数据结构》课程实验教学手册姓名:王俊东学号:1101120216专业:计算机科学与技术班级:2012 级 2 班任课教师:王爽时间:2013-2014 年度第1 学期综合成绩:许昌学院计算机科学与技术学院《数据结构》课程实验教学手册计算机科学与技术学院《数据结构》课程组实验手册使用及要求实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。

现将实验报告撰写的有关内容说明如下:1、实验预习报告必须在实验前完成。

2、实验时带好实验手册方可进行实验。

3、实验时按实验预习报告内容进行实验。

并如实填写实验过程及实验小结。

4、实验结束后填写通过后的源程序。

通过后的源程序可以手写也可以打印粘贴。

实验情况一览表实验一实验名称顺序表及其应用实验性质验证性实验学时数2学时printf("请选择正确的操作!\n");break;}}while(choice!=0);printf("谢谢使用!\n");return 0;}四实验小结初步了解线性表的顺序存储结构,及其定义格式。

掌握在顺序表上进行插入、删除等操作的算法。

但在顺序表的操作上不是十分熟练。

五成绩实验二实验名称单链表及其应用实验性质综合性实验学时数4学时四实验小结初步了解线性表的链式存储结构,及其定义格式。

掌握了在链表上进行插入、删除等操作的算法。

对链表的了解不是很深入,在其使用上往往会犯一些错误比如在链表中进行插入插不到指定位置,删除时位置错误等。

五成绩实验三实验名称线性表综合练习实验性质设计性实验学时数6学时四实验小结对链式表有了进一步的了解,能够利用链式表解决一些实际问题。

了解了链式表的优势,他不会造成空间的浪费,对于插入和删除操作上链式表比顺序表有明显的优势。

五成绩实验四实验名称栈和队列及其应用实验性质设计性实验学时数4学时四实验总结对栈和队列有了初步的了解,他们都是一种特殊的操作受限制线性表,栈的特点是先进后出而队列的是先进先出。

数据结构实验报告(2012级)

数据结构实验报告(2012级)

《数据结构》实验报告专业_____________年级_____________学号_____________学生姓名_____________指导老师_____________华中师范大学信息管理系编I 实验要求1.每次实验中有若干习题,每个学生至少应该完成其中的两道习题。

2.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率。

3.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。

4.上机结束后,应整理出实验报告。

书写实验报告时,重点放在调试过程和小节部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力的目的。

II 实验内容实验一线性表【实验目的】1.熟悉VC环境,学习如何使用C语言实现线性表的两种存储结构。

2.通过编程、上机调试,进一步理解线性表的基本概念,熟练运用C语言实现线性表基本操作。

3.熟练掌握线性表的综合应用问题。

【实验内容】1.一个线性表有n个元素(n<MAXSIZE, MAXSIZE指线性表的最大长度),且递增有。

现有一元素x要插入到线性表的适当位置上,并保持线性表原有的顺序不变。

设计程序实现。

要求:采用顺序存储表示实现;采用链式存储表示方法实现;比较两种方法的优劣。

2. 从单链表中删除指定的元素x,若x在单链表中不存在,给出提示信息。

要求:①指定的值x由键盘输入;②程序能处理空链表的情况。

3.设有头结点的单链表,编程对表中的作一值只保留一个结点,删除其余值相同的结点。

要求:①该算法用函数(非主函数)实现;②在主函数中调用创建链表的函数创建一个单链表,并调用该函数,验证算法的正确性。

4.已知非空单链表第一个结点由head指出,请写一算法,交换p所指结点与其下一个结点在链表中的位置。

要求:①该算法用函数Reverse(head,p)实现,其中head为表头指针,p指向要交换的结点;②在主函数中调用创建链表的函数创建一个单链表,并调用该函数,验证算法的正确性。

数据结构实验教案

数据结构课程实验教案
合二为一。

数据结构课程实验教案
数据结构课程实验教案
合二为一。

数据结构课程实验教案
合二为一。

数据结构课程实验教案
合二为一。

数据结构课程实验教案
合二为一。

数据结构课程实验教案
合二为一。

数据结构课程实验教案
填表说明:1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。

数据结构课程实验教案
如对您有帮助,欢迎下载支持,谢谢!
填表说明:1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。

11。

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

/
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

数据结构教案

数据结构教案数据结构教案一、教学目标1.知识目标:掌握基本数据结构的概念、性质和操作。

2.能力目标:能够根据实际需求选择合适的数据结构,并实现相关操作。

3.情感态度与价值观:培养学生对数据结构的兴趣和理解,认识到数据结构在解决问题中的重要性。

二、教学内容1.数据结构的基本概念:数组、链表、栈、队列、树、图等。

2.数据结构的性质:线性结构、非线性结构;顺序存储和链式存储;动态分配和静态分配等。

3.数据结构的基本操作:插入、删除、查找、排序等。

4.常见数据结构的应用:如二叉树、图论问题、动态规划等。

三、教学重点与难点1.重点:掌握基本数据结构的概念、性质和操作,能够合理选择和应用合适的数据结构。

2.难点:理解不同数据结构的内部机制和操作实现,以及在实际问题中的应用。

四、教学方法1.激活学生的前知:通过提问和举例,了解学生对数据结构的认知情况。

2.教学策略:采用讲解、示范、案例分析和小组讨论等多种方式进行教学。

3.学生活动:设计数据结构实验,让学生自己动手实现相关操作,加深对知识点的理解。

五、教学过程1.导入:通过提出实际问题,引导学生思考如何利用数据结构解决。

2.讲授新课:介绍基本数据结构的概念、性质和操作,并举例说明其应用。

3.巩固练习:通过实验和案例分析,让学生自己动手实现数据结构的操作和应用。

4.归纳小结:回顾本节课的重点和难点,总结数据结构的基本概念和操作方法。

六、评价与反馈1.设计评价策略:通过测试题和实验报告,评价学生对数据结构的掌握情况。

2.为学生提供反馈:根据评价结果,指出学生的不足之处,并给出改进建议。

七、作业布置1.完成教材上的相关练习题。

2.自己设计一个实际应用场景,并尝试使用所学数据结构解决。

3.阅读相关文献或资料,了解数据结构在实际问题中的应用和发展趋势。

《数据结构》课程标准

《数据结构》课程标准一、课程定位《数据结构》是大数据技术与应用专业的一门专业基础课程,本课程所涵盖的知识和技能是作为大数据技术与应用专业学生其他专业课程的核心基础课程之一。

通过本课程的学习,使学生能够获得学习后续专业课程所需的编程算法、数据结构方面的基础知识。

通过本课程及其实践环节教学,使学生能够培养良好的编程习惯,锻炼计算机软件算法思想,并培养学生分析问题和解决问题的能力。

为以后进行实际的软件开发工作打下良好的专业知识和职业技能基础。

二、课程目标通过本课程的学习,培养和提高计算机软件技术专业学生的职业核心能力和素质。

使学生能够具备良好的职业素养,具备团队协作、与人沟通等多方面的能力;使学生具有较强的编程专业基础知识和技能,并具备进行自我拓展的能力。

让学生能够具备深厚的专业基础,为今后的长足发展提供厚实而强大的动力。

1、知识目标本课程涵盖了以下知识目标:(1)掌握算法设计的基本度量方法;(2)掌握线性表、栈、队列、数组和二叉树抽象数据类型的实现及其基本的操作实现;(3)理解图抽象数据类型的实现及其基本的操作特点;(4)掌握常见查找算法和排序算法的特点和实现方法。

2、能力目标(1)能查阅英文版的相关技术手册;(2)能正确地实现常用的抽象数据类型,并能实现常见的基本操作;(3)能针对现实问题选择正确的数据结构,并能在所选择的数据结构基础上编写相应算法以解决该问题;(4)能够对所编写的算法进行简单的度量和评估。

3、素质目标(1)具有良好的心理素质,顽强的意志力,勇于克服困难;(2)具有较强的身心素质,适应艰苦工作需要;(3)具有较扎实的业务基础,并能不断进行创新和自我超越。

三、课程设计1、设计思想教学内容框架按照知识和技能递进的关系,本课程的内容框架设计如下图所示:教学内容框架示意图本课程教学内容按照线性表、栈、队列、数组、树及二叉树和图等基本数据结构的顺序来实施教学,最后将前面的基本数据结构应用于查询算法和排序算法的设计和实现。

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

数据结构实验教学计划(48学时)计算机软件技术教学研究中心联合制定计算机专业实验教学研究中心数据结构是计算机程序设计的重要理论基础,它不仅是计算机学科的核心课程,而且已成为其他理工专业的热门选修课。

数据结构是计算机科学中一门综合性的专业基础课,是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。

该课程主要介绍如何合理地组织数据、有效地存储和处理数据,正确地设计算法以及对算法进行分析和评价。

该课程不仅是一般程序设计的基础,而且是设计和实现编译原理、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。

因此,数据结构课程一直是计算机科学与技术专业的一门理论性和实践性并重的核心课程。

课程的目标是使学生掌握数据的基本的逻辑结构和存储结构、一些典型的数据结构算法及程序设计方法和技巧,要求学会分析数据对象特征,掌握数据组织方法和计算机的表示方法,为数据选择适当的逻辑结构、存储结构以及相应的处理算法,要求具备算法分析的基本技术和能力,并培养良好的程序设计风格,掌握开发复杂、高效程序的技能。

因此,本实验教学计划是针对本科重点班学生学习数据结构实验而设计。

实验指导教师可根据本实验教学计划,针对学生实际情况制定具体的实验指导文档。

实验一:线性表的存储及基本操作、综合应用........................... - 1 - 实验二:二叉树的定义及基本操作、赫夫曼编码及应用............ - 2 - 实验三:图存储及基本操作、典型应用...................................... - 4 - 实验四:查找与排序算法综合应用.............................................. - 5 - 补充实验一:C程序设计基础及应用............................................ - 6 - 补充实验二:栈和队列的存储及基本操作、综合应用 ................. - 7 - 补充实验三:查找算法的实现及比较............................................ - 8 - 补充实验四:排序算法的实现及比较............................................ - 8 -详细实验教学计划实验一:线性表的存储及基本操作、综合应用(必作实验)1、实验学时:12学时(堂下8学时,堂上4学时)2、实验目的:1)掌握线性表的逻辑特征。

2)掌握线性表顺序存储结构的特点,熟练掌握顺序表的基本运算。

3)熟练掌握线性表的链式存储结构定义及基本操作。

4)理解循环链表和双链表的特点和基本运算。

5)加深对顺序存储数据结构的理解和链式存储数据结构的理解,逐步培养解决实际问题的编程能力。

6)掌握顺序表和链表的概念,学会对问题进行分析,选择恰当的逻辑结构和物理结构3、实验内容:1)利用顺序表,设计一组输入数据(假定为一组整数),能够对顺序表进行如下操作(要求每个操作采用菜单形式提供用户选择):●创建一个新的顺序表,实现动态空间分配的初始化;●根据顺序表结点的位置插入一个新结点(位置插入),形成有序顺序表;●根据顺序表结点给定的值删除对应的第一个结点,或者删除指定值的所有结点(值删除);●利用最少的空间实现顺序表元素的逆转;●实现顺序表的各个元素的输出;●彻底销毁顺序线性表,回收所分配的空间;●对顺序线性表的所有元素删除,置为空表;●返回其数据元素个数;●按位置查找,根据顺序表的特点,可以随机存取,直接可以定位于第i 个结点,查找该元素的值,对查找结果进行返回;●按值查找,根据给定数据元素的值,只能顺序比较,查找该元素的位置,对查找结果进行返回;●判断顺序表中是否有元素存在,对判断结果进行返回;●编写主程序,实现对各不同的算法调用。

2)利用线性表的链式存储结构,设计一组输入数据(假定为一组整数),能够对单链表进行如下操作(要求每个操作采用菜单形式提供用户选择):●初始化一个带表头结点的空链表;●创建一个单链表是从无到有地建立起一个链表,即一个一个地输入各结点数据,并建立起前后相互链接的关系。

又分为逆位序(插在表头)输入n个元素的值和正位序(插在表尾)输入n个元素的值;●插入结点可以根据给定位置进行插入(位置插入),也可以根据结点的值插入到已知的链表中(值插入),且保持结点的数据按原来的递增次序排列,形成有序链表。

●删除结点可以根据给定位置进行删除(位置删除),也可以把链表中查找结点的值为搜索对象的结点全部删除(值删除);●输出单链表的内容是将链表中各结点的数据依次显示,直到链表尾结点;●编写主程序,实现对各不同的算法调用。

3)实现一元稀疏多项式的表示及基本操作(建立、销毁、输出、加法、减法、乘法等操作);4)把上述三个系统集成在一起,形成一个线性表基本操作和典型应用的管理系统,要求体现结构程序设计的思想。

实验二:二叉树的定义及基本操作、赫夫曼编码及应用(必作实验)1、实验学时:12学时(堂下8学时,堂上4学时)2、实验目的:1)熟练掌握二叉树的二叉链表存储结构2)掌握二叉树的非线性和递归性特点3)熟练掌握二叉树的递归遍历操作的实现方法,掌握二叉树的非递归遍历操作的实现4)掌握线索二叉树的定义和基本操作5)加深对二叉树和性质的理解,逐步培养解决实际问题的编程能力6)掌握赫夫曼树的概念、存储结构7)掌握建立赫夫曼树和赫夫曼编码的方法及带权路径长度的计算8)熟练掌握二叉树的应用3、实验内容:1)利用二叉树的链式存储结构,设计一组输入数据(假定为一组整数或一组字符),能够对二叉树进行如下操作:●创建一棵空二叉树;●对一棵存在的二叉树进行销毁;●根据输入某种遍历次序输入二叉树中结点的值,依序建立二叉树;●判断某棵二叉树是否为空;●求二叉树的深度;●求二叉树的根结点,若为空二叉树,则返回一特殊值;●二叉树的遍历,即按某种方式访问二叉树中的所有结点,并使每个结点恰好被访问一次;●编写主程序,实现对各不同的算法调用;2)利用二叉树的链式存储结构,设计一组输入数据(假定为一组整数或一组字符),能够对二叉树进行如下操作:●求某一个结点的双亲结点, 求某一个结点的左孩子(或右孩子)结点;求某一个结点的左兄弟(或右兄弟)算法;●利用栈,实现二叉树的非递归(先序、中序或后序)遍历算法;●利用队列,实现层序递归遍历二叉树;●定义线索二叉树的链式存储结构,建立线索二叉树,实现线索二叉树的插入和删除操作;●编写主程序,实现对各不同的算法调用;3)设计一种编码方案,要求对一个英文文本文件进行压缩编码,然后对该文件再进行译制码操作,对比原文件和编码文件进行压缩率的分析。

要求是:●对于给定的英文文本,可以根据其频度进行哈夫曼编码,并能输出对应的哈夫曼树和哈夫曼编码;●实现哈夫曼解码。

●能够分析文件,统计文件中出现的字符,统计字符出现的概率,再对文件进行编码,实现文件的压缩和解压缩。

●能够对于文件的压缩比例进行统计。

实验三:图存储及基本操作、典型应用(必作实验)1、实验学时:12学时(堂下8学时,堂上4学时)2、实验目的:1)熟练掌握图的两种存储结构(邻接矩阵和邻接表)的表示方法2)掌握图的基本运算及应用3)加深对图的理解,逐步培养解决实际问题的编程能力4)掌握图的邻接矩阵、邻接表的表示方法5)掌握迪杰斯特拉和弗洛伊德的最短路径算法6)理解拓扑排序,掌握关键路径的算法7)加深对图的理解,逐步培养解决实际问题的编程能力3、实验内容:1)利用邻接表存储结构,设计一种图(有向或无向),并能够对其进行如下操作:●创建一个可以随机确定结点数和弧(有向或无向)数的图;●根据图结点的序号,得到该结点的值;●根据图结点的位置求第一个邻接顶点的序号,以及下一个邻接顶点的序号;●实现从第v个顶点出发对图进行深度优先递归遍历;●实现对图作深度优先遍历;●实现对图进行广度优先非递归遍历;●编写主程序,实现对各不同的算法调用。

2)建立一个网,完成以下操作:●选择一种网的存储结构,初始化网;●用迪杰斯特拉算法或弗洛伊德算法实现点与点之间的最短路径●建立一个AOE-网,实现关键路径算法。

3)集成上述两个系统,形成一个图基本操作和典型应用的管理系统。

实验四:查找与排序算法综合应用(必作实验)1、实验学时:12学时(堂下8学时,堂上4学时)2、实验目的1)巩固和加深对各种数据结构的理解。

2)掌握恰当选用数据结构并设计与实际问题相符的算法的能力。

3、实验内容1)建立学籍管理系统,实现对于学生信息的添加和维护管理,要求必须设置必要的循环选择菜单。

基本要求:完成学籍登记表中的下面功能(登记表中包括学号、姓名、性别、出生日期、政治面貌、联系方式、家庭住址等信息)。

●数据来源为外部文件,查询结果和排序结果均可形成独立的文件存储。

●要求学生信息采用顺序表来实现,学生成绩信息采用二叉排序树来进行构建。

●插入:将某学生的基本信息插入到登记表中;●删除:将满足条件的基本信息删除;●修改:对基本信息的数据项进行修改;●查询:查找满足条件的学生;实现按学号查询、姓名查询、按科目成绩查询等功能。

实现查找某学生的选课记录,课程成绩等;●排序:实现按照单科成绩和总成绩排序功能,同时实现按照学号、姓名等进行的排序功能。

至少采用三种不同的排序算法来实现该项功能。

●输出:将登记表中的全部(或满足条件)基本信息输出。

●可以添加课程信息(如开课学期、上课时间、上课地点等信息),学生选课信息,实现学生的选课功能;●利用二叉排序树、平衡树、排序算法等数据结构知识提高排序和查找速度。

2)对上述学籍管理系统的设计与实现问题,分析其数据及数据间的联系,为其设计适当的数据结构,并分析这种结构的优点。

3)对上述问题设计切实可行的算法,并分析该算法的时间和空间复杂度。

补充实验一:C程序设计基础及应用(选作实验)1、实验学时:6学时(学生堂下根据自身情况选作)2、实验目的:1)巩固复习前期所学C语言的基本数据类型和自定义数据类型等知识点,强化学习数据结构语言和编程基础。

2)巩固复习前期所学C语言的函数参数传递、指针和结构体等知识点,加强学习数据结构语言基础。

3)理解递归调用的实现过程,学会递归程序的设计方法3、实验内容:1)对一个完整的C小程序进行调试,运行,从中理解数据和算法的概念。

2)学生信息的显示,具体要求如下:●定义一个结构体描述学生信息(学号,姓名,性别,年龄,住址);●设计一个函数,用于显示单个学生信息,函数的参数为前面定义的结构体类型;●设计一个主函数,在主函数中输入学生的信息,并调用前面定义的函数进行显示(学生人数不少于5人)。

相关文档
最新文档