队列的实现及应用

一、实验目的

1、掌握队列的类型定义方法。

2、理解和掌握循环队列解决假溢出的方法。

二、实验内容

1、利用循环队列模拟舞伴配对问题。在舞会上,男、女各自排成一队。舞会开始时。依次从男队和女队的队头各出一人配成舞伴。如果两队初始人数不等,则较长的那一队中未配对者等待下一轮舞曲。

2、假设初始男、女人数及性别已经固定,舞会的轮数从键盘输入。

试模拟解决上述舞伴配对问题。

3、从屏幕输出每一轮舞伴配对名单,如果在该轮有未配对的,能够从屏幕显示下一轮第一个出场的未配对者的姓名。

三、实现过程

1.对问题建立模型
男、女伴对应了人的主体,用Person类来代表舞伴,属性sex来区分男女。每一次舞会对应了选择若干组一一对应的男女舞伴,用队列Queue代表排好的男女,两队用队列的出队操作poll代表选择。设置类如下
interface Queue 抽象队列数据类型,T代表数据源的数据类型,在其中约定队列通用的抽象方法。
class SeqQueue顺序循环队列类,最终,类实现队列接口,T代表数据元素的数据类型
Obeject[] element存储数据元素的数组
int front,rear队列头尾下标
class Person人类,用于表示舞伴
int id编号,用于区分不同的人
int sex 性别,1:男,2:女
2.算法设计
用men、women来代表男女两个队列,每次都出队一个进行配对,然后,将这两个已经出队的元素重新加入对胃。
可以设置每次舞会的人数以及舞会次数。
3.程序实现
四、实验总结与反思
1.队列是一种特殊的线性表,其插入和删除操作分别在线性表的两端进行。队列限制用户只能在一端插入元素,而在另一端删除。
2.队列基本操作:判空,入队,出队及返回队首元素。
3.循环队列解决了顺序队列的假溢出问题。逻辑上首尾相接的环结构。
4.队列满条件front==(rear+1)%length,队列满时再入队,将数组容量扩充已被,按照队列元素次序赋值数组元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值