好文档 - 专业文书写作范文服务资料分享网站

《算法与数据结构》实验报告(20140301)

天下 分享 时间: 加入收藏 我要投稿 点赞

内蒙古大学 计算机学院&软件学院 《算法与数据结构》实验报告

《算法与数据结构》实验报告

班级____________ 姓名___________ 学号_____________

实验1:线性表的应用(6学时)

[问题描述]

通过单链表实现整数集合的交(∩)、并(∪)、差(-)运算。其中:集合A与集合B差运算的结果是属于集合A但不属于集合B的元素。

[实验目的]

(1) 熟练掌握链表的基本操作; (2) 运用链表解决实际问题。

[实验内容及要求]

(1) 编写程序,设计结点类,通过链表描述整数集合;

(2) 在主函数中建立两个递增排序的整数链表,对这两个链表依次执行交、并、异

或运算,并输出相应结果;如果运算结果为“空”,则输出“NULL”;

(3) 由于同一个集合中不能同时存在两个相同的元素,因此在一个链表中不应存在

数值相同的两个结点。

[示例输入/输出]

示例输入: 10

5 15 7 9 100 -43 18 9 -100 66 15

6 5 200 -9 88 7654 0 16 22 -12 -100 365 1 8 123 示例输出:

第一个集合共有9个元素,分别是: -100 -43 5 7 9 15 18 66 100 第二个集合共有15个元素,分别是: -100 -12 -9 0 1 5 6 8 16 22 88 123 200 365 7654

两个集合的交共有2个元素,分别是: -100 5

两个集合的并共有22个元素,分别是: -100 -43 -12 -9 0 1 5 6 7 8

9 15 16 18 22 66 88 100 123 200 365 7654

两个集合的差共有7个元素,分别是: -43 7 9 15 18 66 100

第1页,共7页

内蒙古大学 计算机学院&软件学院 《算法与数据结构》实验报告

《算法与数据结构》实验报告

班级____________ 姓名___________ 学号_____________

实验2:栈和队列的应用(9学时)

[问题描述]

设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在停车场的最北端),若停车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入停车场;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场;每辆停放在车场的车在它离开停车场时,必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。

[实验目的]

(1) (2) (3) (4)

理解栈(先进后出)和队列(先进先出)的工作特点; 掌握栈结构的构造方法以及栈的基本操作(出栈、入栈); 掌握队列的构造方法以及队列的基本操作(出队列、入队列); 运用栈和队列解决实际问题。

[实验内容及要求]

(1) 以栈模拟停车场,以队列模拟停车场外的便道,按照从终端读入的输入数据序

列进行模拟管理。每一组输入数据包括三个数据项:(i) 汽车“到达”或“离去”信息,(ii) 汽车牌照号码,(iii) 到达或离去的时刻。

(2) 对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停

车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间(单位是小时)和应交纳的费用(在便道上停留的时间不收费),假设停车费为每小时m元。

(3) 等候在便道上的汽车可以直接从便道上开走,但此时排在它前面的汽车要先开

走让路,然后再依次排到队尾。

(4) 栈和队列均采用链表结构实现。

(5) 提示:需另设一个栈(也用链表结构实现),临时停放为给要离去的汽车让路

而从停车场退出来的汽车。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。

[示例输入/输出]

设n=2,m=5,则输入数据为: 2 5

A 1 10

第2页,共7页

内蒙古大学 计算机学院&软件学院 《算法与数据结构》实验报告

A 2 15 D 1 20 A 3 23 A 4 28 A 5 31 A 6 33 D 2 45 D 4 70 E

其中:‘A’表示到达(Arrival);‘D’表示离去(Departure);‘E’表示程序结束(End)。

输出数据为:

汽车1停靠在停车场1号位置 汽车2停靠在停车场2号位置

汽车1停车10小时,缴纳停车费50元 汽车3停靠在停车场2号位置 汽车4停靠在便道的1号位置 汽车5停靠在便道的2号位置 汽车6停靠在便道的3号位置

汽车2停车30小时,缴纳停车费150元

汽车4停靠在停车场2号位置 (说明:汽车4进入停车场的时间为汽车2离开的时间) 汽车4停车25小时,缴纳停车费125元

其中:停车场从北至南的序号依次为1(栈底)~n(栈顶);便道上的停车序号从1(队列头)开始,往后依次增一。

[选作内容]

(1) 汽车可有不同种类,则他们的占地面积不同,收费标准也不同,如:1辆7座

客车和1.5辆小汽车的占地面积相同,收费为每小时3元;1辆卡车占地面积相当于2辆小汽车的占地面积,收费为每小时4元;一辆公共汽车占地面积相当于3量小汽车的占地面积,收费为每小时6元等等;因此,等候在便道上的汽车无法可能无法进入停车场(假设停车场总面积为M,当前停车场的空余面积小于汽车所需占地面积)。

第3页,共7页

内蒙古大学 计算机学院&软件学院 《算法与数据结构》实验报告

《算法与数据结构》实验报告

班级____________ 姓名___________ 学号_____________

实验3:小型文本搜索引擎的实现(12~15学时)

[问题描述]

随着互联网技术的飞速发展,如何从海量数据中查找所需内容,不仅是科研人员关注的热点问题,许多IT公司也先后推出了各自的搜索引擎,如:Google、百度、Bing等。搜索引擎的核心是如何对Web网页构建有效的索引,以便能够快速查找和匹配查询关键词,并及时地将搜索结果返回给用户。在这个实验中,请实现一个英文单词的二叉查找树,并可根据输入的英文单词进行搜索,同时可给出单词在文档中的位置信息。

[实验目的]

(1) (2) (3) (4)

掌握二叉查找树的构造过程;

掌握二叉查找树中结点的插入、删除等操作; 掌握二叉树的前序、中序遍历; 运用二叉查找树解决实际问题。

[实验内容及要求]

(1) 构造二叉查找树:

①. 从文件中读入内容,过滤掉阿拉伯数字和标点符号,并将英文字母的大写

形式全部转换成小写形式。

②. 按照英文字母表的顺序构造英文单词的二叉查找树。当两个英文单词的首

字母相同时,按第二个字母进行排序,依次类推。

③. 为每个英文单词建立一个单链表,用于存放该单词在文档中的位置信息(即:该单词是文档的第几个单词,序号从1开始)。如果一个单词在文档中出现多次,则该链表中将包含多个结点,并按照单词在文档中出现的次序(位置信息)递增排序。

(2) 遍历二叉查找树:

①. 实现二叉查找树的先序遍历,以便能够找出出现次数最多的单词;

②. 搜索:输入一个待检索单词,从二叉查找树中查找单词,如果能找到该单

词,则输出该单词在原始文档中出现的位置信息,否则提示文档中不包含该检索词;

③. 实现二叉查找树的中序遍历。(要求:每个单词占一行,每行依次记录单

词、该单词出现的次数、以及该单词在文档中的位置信息。)

(3) 删除结点:

①. 给定一个停用词列表(停用词是指对搜索没有作用的词,如:of, and, a, an,

the等等),将二叉查找树中的属于停用词表中的单词依次删除(不仅删除结点,还需清空记录该单词位置信息的单链表);

第4页,共7页

内蒙古大学 计算机学院&软件学院 《算法与数据结构》实验报告

②. 在搜索时,当输入的检索词是停用词时,则不进行查询。

[选作内容]

(1) 允许一次输入两个或者更多个单词进行查询,即:先获得这些单词各自在文档

中出现的位置信息,然后再分析这些单词的位置信息,判断这些单词在原始文档中是否存在连续出现的情况。

(2) 尝试实现从多个文档中读入内容,构建二叉查找树,并实现多个文档的搜索。

第5页,共7页

《算法与数据结构》实验报告(20140301)

内蒙古大学计算机学院&软件学院《算法与数据结构》实验报告《算法与数据结构》实验报告班级____________姓名___________学号_____________实验1:线性表的应用(6学时)[问题描述]通过单链表实现整数集合的交(∩)、并(∪)、差(-)运算。其中:集合A与集合B差运算的结
推荐度:
点击下载文档文档为doc格式
7njpi6hpqs8n6j587kg3
领取福利

微信扫码领取福利

微信扫码分享