跪求Java数据结构排队就餐问题

【问题描述】顾客到饭店就餐通常遇到排队等待情况,如果店内有空座,可直接点餐,否则需要排队等待。要求根据顾客的排队情况,及时安排点餐。【基本要求】请用Java语言编写程序,... 【问题描述】
顾客到饭店就餐通常遇到排队等待情况,如果店内有空座,可直接点餐,否则需要排队等待。要求根据顾客的排队情况,及时安排点餐。
【基本要求】
请用Java语言编写程序,模拟顾客排队等待情况。餐桌个数、就餐人数由学生自己设计,存储结构和实现算法由学生自己选定并实现,要求如下。
(1)饭店内餐桌个数为n个;
(2)顾客到达饭店如果有空座可立即坐下点餐,否则需要依次排队等候;
(3)一旦有顾客离去,排在队头的顾客便可开始进店点餐;
(4)如果有VIP顾客,可直接插入队头。
程序包含的基本功能说明如下:
(1) 排队:输入排队顾客的编号,加入队列;
(2) 就餐:排在队列头的顾客进店点餐,并将其从排队队列中删除;
(3) 查看排队:从队头到队尾输出所有等待的顾客编号;
(4) VIP顾客:直接插入对头;
(5) 下班:退出运行,提醒顾客营业结束。
【测试数据】
确定餐桌个数(至少8桌),输入排队顾客编号(不少于10人),以较为直观的方式显示出排队等待的顾客编号及就餐顾客编号。
【实现提示】
采用队列算法实现。
展开
 我来答
s1093792990
2019-06-04 · 超过78用户采纳过TA的回答
知道小有建树答主
回答量:249
采纳率:100%
帮助的人:57.7万
展开全部
经典的生产者消费者模式,网上百度一堆,两种方式,一种blockingqueue阻塞队列,一种逻辑实现
追问
求代码实现
追答
创建顾客对象,属性如下:
1、就餐号
2、int 权重(vip判断)
创建一个blockingqueue设置一个最队列值假设为10,可以理解为有10个餐桌,创建一个TreeSet类型里面放顾客,在根据权重对TreeSet使用比较器排序,创建线程生产顾客对象,并且往阻塞队列中添加顾客,如果添加成功返回true,将顾客从set中remove。
这是最简单的思路,可以先照着上面做,不懂可以问我,不要只想着要代码
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式