ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:1,008.27KB ,
资源ID:27203923      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27203923.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构实验手册资料.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构实验手册资料.docx

1、数据结构实验手册资料数据结构实验指导书Data Structures and AlgorithmsLaboratory Projects王金荣2014-09-11目录1数据结构实验课程实验教学大纲-12 实验准备: 如何使用VC 6.0? -33 Projects-83.1 Project 1: 算法性能测量-83.2 Project 2: 有序表归并实验-103.3 Project 3: 数据转换-113.4 Project 4: 二叉树遍历实验-123.5 Project 5-1: 堆排序算法实现-133.6 Project 5-2: 归并排序算法实现-143.7 Project 5-3:

2、 快速排序算法实现-153.8 Project 6-1: 图的深度优先搜索-163.9 Project 6-2: 图的广度优先搜索-173.10 Project 7: 散列实验-18 4.1 ACM题目-194.1 ACM 1: ACboy needs your help again!-194.2 ACM 2: Jumping the Queue-214.3 ACM 3: Median -234.4 ACM 4: Ignatius and the Princess I-255 实验报告格式-286实验报告上交说明-291数据结构实验课程实验教学大纲课程中文名称:数据结构实验 课程英文名称:Da

3、ta Structure Practices实验课程性质:独立设课课 程 编 码:044209101一、学时、学分课程总学时:34 实验学时:34课程总学分:1 实验学分:1二、适用专业及年级 计算机科学与技术专业,软件工程专业,第二学期三、实验教学目的与基本要求“数据结构实验”的总体目标是:通过实验使学生对课堂讲授的内容有实际的体验,加深对概念、算法、技术的理解、掌握、应用,并激发学生进一步的思考和发挥,注重培养学生的学习兴趣和创新思维。通过实验,使学生进一步掌握VC编程环境;理解和掌握数据结构的基本问题和基本算法;具备大型程序的编程能力,特别是多文件大型工程的编程;了解ACM竞赛的赛题,掌

4、握参加ACM竞赛的基本技能。四、主要仪器设备 通过局域网互联、安装Windows XP / windows 7操作系统和Visual C+环境的微机。五、实验课程内容和学时分配序号实验项目名 称实 验 项 目 内 容项目学时实验属性项目类型每组人数项目要求1Performance MeasurementVC环境配置,递归和非递归顺序搜索算法,算法性能测量方法。4专业基础设计1必做2List and ApplicationsList的的基本操作的实现,并将List用于解决实际问题。6专业基础综合1必做3Stack, Queue and Applications堆栈和队列数据结构的表示和基本操作实

5、现,堆栈和队列的应用方法。6专业基础综合1必做4Binary Tree二叉树的表示方法和各遍历算法及其他基本操作,二叉树应用。6专业基础综合1必做5An ACM Problem用数据结构相关知识解决ACM竞赛问题。4专业基础综合1选做6Sorting Algorithms各种内部排序算法的实现,将排序算法用于解决实际问题。4专业基础验证1必做7Graph and Applications图的表示及基本操作的实现,图的应用。4专业基础综合1必做注:1实验项目名称,表达要简洁准确;2实验属性,分“基础”、“专业基础”、“专业”。按课程代码的第3位进行识别,第3位3的为“基础”,第3位4的为“专业基

6、础”,第3位5的为“专业”。3项目类型,分“演示”、“验证”、“综合”、“设计研究”、“其他”。4项目要求,分“必做”、“选做”。六、成绩考核(1)实验成绩的构成:平时成绩占 50 %,实验考核占 50 %,其它占 0 %。(2)评分标准(按构成分类说明):平时成绩: 自编讲义数据结构实验指导书中已经明确规定每个实验的目的、任务、主要步骤和评分标准。教师以此为依据,根据学生通过上交的实验报告和实验源代码确定其完成数量和质量、进行评分。实验考核:期末考试安排闭卷上机考试,考试题目从平时课堂试验中随机抽取。七、实验教科书、参考书(一)教科书数据结构实验指导书袁贞明,王金荣编,自编讲义(二)参考书1

7、.数据结构与算法分析Mark Allen Weiss,陈越改编,人民邮电出版社,2005.082.数据结构(C语言) Ellis Horowitz,李建中等译, 机械工业出版社,2006.07.2 实验准备: 如何使用visual studio 2010编写一个c+程序? 3 Projects3.1 Project 1: 算法性能测量(1)问题描述随机生成为N个随机整数,请分别用“选择排序法”和“希尔排序法”对其进行从小到大的排序,并测试不同规模N下两算法的运行时间。(2)任务实现选择排序法,算法见教材P11-Program 1.4;实现希尔排序法,算法附后;分折选择排序法的时间和空间复杂度;

8、当规模N分别取1000、2000、4000、8000、16000、32000、64000时,测试四个函数的运行时间,将所测结果填入表1中。* 画出函数运行时间T随着规模N的变化趋势图(可以用PPT、Matlab画)。(3)生成随机整数的方法生成方法如下图所示,程序开头需要加上“stdlib.h”头文件。(4)函数运行时间测试方法 为测试一个C函数的运行时间,需要使用头文件“time.h”,具体测试方法参见第1.6.1节,如下所示:注: 当一个函数的运行时间小于一个tick(毫秒),则其所测时间为0.0,为了测试这种情况下函数的运行时间,我们可以将该函数重复运行K次,再测试其总运行时间 (“To

9、tal Time”),然后将该时间除以K即得该函数的一次运行时间(“Duration”)。此处的K要求足够大,使得总运行时间不能少于100毫秒。表1 四个函数的运行时间统计(秒)-N1000200040008000160003200064000SelectionSortIterations (K)Total Time (sec)Duration (sec)ShellSortIterations (K)Total Time (sec)Duration (sec)(5)希尔排序算法 3.2 Project 2: 有序表归并实验(1)问题描述 对任意输入的两个按值非递减有序的整数序列,写一程序将它们

10、归并成一个按值非递减有序序列。(2)输入描述 文本文件“input.txt”中保存了n个测试用例,文件以-1结束。每个用例的第一行m1表示第一个待归并有序序列的元素个数,第二行为该序列的m1个元素,第三行m2表示第二个待归并有序序列的元素个数,第四行为该序列的m2个元素。(3)输出描述 输出结果保存在文本文件“output.txt”中。对于每个测试用例均有二行输出,第一行输出“Case #:#”,#表示用例的编号(1n),#表示归并后有序序列的元素个数;第二行输出#个按值非递减有序元素。(4)输入示例 5 1 4 8 10 30 7 2 4 20 35 50 60 86 3 38 45 100

11、 4 38 50 100 120 -1(5)输出示例 Case 1:121 2 4 4 8 10 20 30 35 50 60 86Case 2:738 38 45 50 100 100 1203.3 Project 3: 数据转换(1)问题描述 对任意输入的十进制正整数,写一程序将其转换成二进制表示。要求首先实现Stack ADT,然后用栈的基本操作完成该程序。(2)输入描述 文本文件“input.txt”中保存了n个小于32768的正整数,文件以-1结束。(3)输出描述 输出结果保存在文本文件“output.txt”中,文件每一行输出“#-#”,#表示十进制表示的正整数,#为其二进制表示结

12、果。(4)输入示例 20163445100-1(5)输出示例 20-1010016-1000034-10001045-101101100-11001003.4 Project 4: 二叉树遍历实验(1)Problem description Create binary tree as follow (Figure-1) in computer, write out the functions of inOrder , preOrder , postOrder and levelOrder, and use them to traversal the binary tree. And compu

13、te the leaf number and height of the binary tree.Hint: You may choose suitable representation, such as linked representation is often used.Figure-1 a binary tree(2)Steps and restrict conditionsStep 1. Write the function of create to create a tree by input data. The input format of the binary tree in

14、 Figure-1 is as : ABD#G#CE#FH#. Step2.Write recursive version functions of inOrder, preOrder and postOrder to traversal the tree.Step3.Select a suitable representation to implement stack ADT, which must at least has five basic operations: IsFull, IsEmpty, Push and Pop. The element type in the stack

15、is pointer of node.Step4.Implement Queue ADT represented by circular queue, which has seven basic operations: IsEmpty, IsFull, AddQ, DeleteQ. The element type in the queue is pointer of node.Step5.Write an iterative version of inorder, the name is iterInorder() to inorder traversal tree.Step6.Write

16、a function for level order traversal of binary tree, the name is levelOrder.Step 7. Write a function to compute the leaf number of the binary tree, the name is leaf.Step 8. Write a function to compute the height of the binary tree, the name is height.3.5 Project 5-1: 堆排序算法实现(1)问题描述 对于任一无序正整数序列,写一程序用

17、堆排序算法将其排序成按值非递减有序序列。(2)输入描述 文本文件“input.txt”中保存了n个测试用例,文件以-1结束。每个用例的第一行m表示待排序正整数序列的元素个数,第二行为该序列的m个正整数。(3)输出描述 输出结果保存在文本文件“output.txt”中。对于每个测试用例均有二行输出,第一行输出“Case #:#”,#表示用例的编号(1n),#表示排序后有序序列的元素个数,第二输出#个按值非递减有序元素。(4)输入示例 5 10 1 8 4 30 7 35 60 50 2 20 4 86 3 38 100 45 -1(5)输出示例 Case 1:51 4 8 10 30Case 2

18、:72 4 20 35 50 60 86Case 3:338 45 1003.6 Project 5-2: 归并排序算法实现(1)问题描述 对于任一无序正整数序列,写一程序用归并排序算法将其排序成按值非递减有序序列。(2)输入描述 文本文件“input.txt”中保存了n个测试用例,文件以-1结束。每个用例的第一行m表示待排序正整数序列的元素个数,第二行为该序列的m个正整数。(3)输出描述 输出结果保存在文本文件“output.txt”中。对于每个测试用例均有二行输出,第一行输出“Case #:#”,#表示用例的编号(1n),#表示排序后有序序列的元素个数,第二输出#个按值非递减有序元素。(4

19、)输入示例 5 10 1 8 4 30 7 35 60 50 2 20 4 86 3 38 100 45 -1(5)输出示例 Case 1:51 4 8 10 30Case 2:72 4 20 35 50 60 86Case 3:338 45 1003.7 Project 5-3: 快速排序算法实现(1)问题描述 对于任意的无序正整数序列,写一程序用快速排序算法将其排序成按值非递减有序序列。其中直接插入排序算法见附录。(2)输入描述 文本文件“input.txt”中保存了n个测试用例,文件以-1结束。每个用例的第一行m表示第一个待排序整数序列的元素个数,第二行为该序列的m个元素。(3)输出描述

20、 输出结果保存在文本文件“output.txt”中。对于每个测试用例均有二行输出,第一行输出“Case #:#”,#表示用例的编号(1n),#表示排序后有序序列的元素个数,第二输出#个按值非递减有序元素。(4)输入示例 5 10 1 8 4 30 7 35 60 50 2 20 4 86 3 38 100 45 -1(5)输出示例 Case 1:51 4 8 10 30Case 2:72 4 20 35 50 60 86Case 3:338 45 1003.8 Project 6-1: 图的深度优先搜索(1)问题描述写一程序实现图的深度优先搜索算法(DFS),并对输入的有向图输出遍历结果。(2

21、)输入描述文本文件“input.txt”中保存了一个有向图的输入,文件以-1结束。第一行表示该图的顶点数n(输入示例中为6)和弧数m(输入示例中为11);接下去m行是用(i,j,e)表示的弧,它表示从顶点i出发到顶点j的权值为e的弧。最后几行分别表示从这些顶点出发进行DFS,输出它们的结果。(3)输出描述 输出结果保存在文本文件“output.txt”中。对每个开始搜索的顶点,都有一行,该行表示从该顶点出发进行DFS的结果。(4)输入示例6 11 0 1 500 2 100 4 451 2 151 4 102 0 202 3 153 1 203 4 354 3 305 3 313-1(5)输出

22、示例 DFS From V1: V1 V4 V3 V2 V0 DFS From V3: V3 V4 V1 V2 V03.9 Project 6-2: 图的广度优先搜索(1)问题描述写一程序实现图的广度优先搜索算法(BFS),并对输入的有向图输出遍历结果。(2)输入描述文本文件“input.txt”中保存了一个有向图的输入,文件以-1结束。第一行表示该图的顶点数n(输入示例中为6)和弧数m(输入示例中为11);接下去m行是用(i,j,e)表示的弧,它表示从顶点i出发到顶点j的权值为e的弧。最后几行分别表示从这些顶点出发进行BFS,输出它们的结果。(3)输出描述 输出结果保存在文本文件“outpu

23、t.txt”中。对每个开始搜索的顶点,都有一行,该行表示从该顶点出发进行DFS的结果。(4)输入示例6 11 0 1 500 2 100 4 451 2 151 4 102 0 202 3 153 1 203 4 354 3 305 3 313-1(5)输出示例 3.10 Project7: HashingGiven a hash table of size N, we can define a hash function H(x) = x % N. Suppose that the linear probing is used to solve collisions, we can easi

24、ly obtain the status of the hash table with a given sequence of input numbers.However, now you are asked to solve the reversed problem: reconstruct the input sequence from the given status of the hash table. Whenever there are multiple choices, the smallest number is always taken. Input Specificatio

25、n: Your program must read test cases from the standard input.Input consists of several test cases. For eash test case, the first line contains a positive integer N (N = 1000), which is the size of the hash table. The next line contains N integers, separated by a space. A negative integer represents

26、an empty cell in the hash table. It is guaranteed that all the non-negative integers are distinct in the table.The input ends with N being 0. That case must NOT be processed.Output Specification: For each test case, output to the standard output. Print a line that contains the input sequence, with the numbers separated by a space. Notice that there must be non extra space at the end of each line. Sample Input: 1133 1 13 12 34 38 27 22 32 -1 2133 1 20 Sample Output: 1 13 12 21

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1