首页 > 其他分享 >假设Sigmund Landers在商业街设置了一个提供建议的摊位,顾客可以购买1分钟,2分钟,或3分钟的建议,为确保交通每个摊位前排队等待的顾客最多10人,用两个队列模拟两个摊位

假设Sigmund Landers在商业街设置了一个提供建议的摊位,顾客可以购买1分钟,2分钟,或3分钟的建议,为确保交通每个摊位前排队等待的顾客最多10人,用两个队列模拟两个摊位

时间:2024-08-14 23:27:13浏览次数:10  
标签:enqueue int 分钟 Queue 摊位 stall2 顾客

/假设Sigmund Landers在商业街设置了一个提供建议的摊位,顾客可以购买1分钟,2分钟,或3分钟的建议,为确保交通每个摊位前排队等待的顾客最多10人,用两个队列模拟两个摊位/

#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 10

typedef struct
{
    int items[MAX_SIZE];
    int front, rear;
} Queue;
void initQueue(Queue *q)
{
    q->front = -1;
    q->rear = -1;
}
int isFull(Queue *q)
{
    return (q->rear == MAX_SIZE - 1);
}
int isEmpty(Queue *q)
{
    return (q->front == -1);
}
void enqueue(Queue *q, int item)
{
    if (isFull(q))
    {
        printf("Queue is full\n");
    }
    else
    {
        if (isEmpty(q))
        {
            q->front = 0;
        }
        q->rear++;
        q->items[q->rear] = item;
        printf("Customer with %d minutes of advice added to queue\n", item);
    }
}
int dequeue(Queue *q)
{
    int item;
    if (isEmpty(q))
    {
        printf("Queue is empty\n");
        return -1;
    }
    else
    {
        item = q->items[q->front];
        if (q->front == q->rear)
        {
            q->front = -1;
            q->rear = -1;
        }
        else
        {
            q->front++;
        }
        return item;
    }
}
void serveCustomer(Queue *q, int stallNumber)
{
    int adviceTime = dequeue(q);
    if (adviceTime != -1)
    {
        printf("Serving customer at stall %d for %d minutes of advice\n", stallNumber, adviceTime);
    }
}
int main(void)
{
    Queue stall1, stall2;
    initQueue(&stall1);
    initQueue(&stall2);
    // 模拟顾客选择建议时间并排队
    enqueue(&stall1, 1); // 顾客选择1分钟建议
    enqueue(&stall1, 2); // 顾客选择2分钟建议
    enqueue(&stall2, 3); // 顾客选择3分钟建议
    enqueue(&stall2, 1); // 顾客选择1分钟建议
    enqueue(&stall1, 2); // 顾客选择2分钟建议
    enqueue(&stall1, 3); // 顾客选择3分钟建议
    enqueue(&stall2, 2); // 顾客选择2分钟建议
    enqueue(&stall2, 1); // 顾客选择1分钟建议

    // 服务顾客
    serveCustomer(&stall1, 1);
    serveCustomer(&stall1, 1);
    serveCustomer(&stall2, 2);
    serveCustomer(&stall2, 2);

    return 0;
}

标签:enqueue,int,分钟,Queue,摊位,stall2,顾客
From: https://www.cnblogs.com/yesiming/p/18359966

相关文章

  • 3 分钟带你了解 AI Agent(智能体)基础篇
    前言AIAgent(人工智能代理/智能体)绝对是2024上半年一个爆火的话题。从GoogleTrends图中可见一斑。尤其是在中国区,不得不说是真的卷,直接干到了100,是第二名的近10倍。老王最近花费了大量的时间进行学习与研究,期间也在智能体开发平台成功搭建了一些有趣的AIAgent,......
  • 高精度光学测量工具MXoptiCal,分分钟搞定实车测试数据对标
    一、产品概述  在实车ADAS/AD功能测试时,工程师需要在车上安装更高精度的传感器来对车辆的参照物距离进行准确测量,从而判断ADAS/AD功能实现的准确性,因此也需要车上准确的对照点位置。 MXoptiCal是由德国MdynamiX公司开发的一款高精度光学测量工具,旨在实现简便且重复性高的......
  • DolphinDB 中高频回测解决方案:期货分钟频 CTA 策略回测实例
    CTA策略在现代金融市场中扮演着重要角色,通过技术分析和趋势跟踪,其能够帮助用户捕捉市场动向,实现风险对冲和利润最大化。在中高频交易中,CTA策略对交易效率、盈利能力的助益尤为明显。在投入实盘交易之前,利用市场的历史数据对量化中高频策略进行测试和评估是确保交易策略有效......
  • 你敢相信,我5分钟做了模式植物的GO和KEGG富集分析,并创建了orgDb数据库
    原文教程:我5分钟做了模式植物的GO和KEGG富集分析,并创建了orgDb数据库一边学习,一边总结,一边分享!本期教程获得本教程DataandCode,请在后台回复:20240811。2022年教程总汇2023年教程总汇写在前面我们在前面的教程分享了模式植物构建orgDb数据库|以org.Slycompe......
  • JS Promise 一分钟带你深度理解
    JSPromise一分钟带你深度理解文章目录JSPromise一分钟带你深度理解一、什么是Promise?二、为什么使用Promise?三、基础知识四、创建Promise五、Promise使用1、链式调用2、顺序执行3、处理多个Promise4、错误处理六、高级用法七、最佳实践八......
  • 三十分钟入门基础Go(Java小子版)
    前言Go语言定义Go(又称Golang)是Google的RobertGriesemer,RobPike及KenThompson开发的一种静态、强类型、编译型语言。Go语言语法与C相近,但功能上有:内存安全,GC,结构形态及CSP-style并发计算。适用范围本篇文章适用于学习过其他面向对象语言(Java、Php),但没有学过......
  • 基于Java Springboot“一分钟”寝室小卖部系统
    一、作品包含源码+数据库+设计文档万字+PPT+全套环境和工具资源+部署教程二、项目技术前端技术:Html、Css、Js、Vue、Element-ui数据库:MySQL后端技术:Java、SpringBoot、MyBatis三、运行环境开发工具:IDEA/eclipse数据库:MySQL5.7数据库管理工具:Navicat10以上版本环境......
  • Markdown使用入门(3分钟学会)
    MarkDown语法基础入门(1分钟学习及速查)标题:‘#’空格:一级标题‘##’空格:二级标题字体**粗体***斜体*~~删除线~~引用>空格分割线三条杠---三个***图片![名称](url)超链接点击跳转[连接名称](地址)列表有序号:1.输入完加空格无序:-加空格......
  • 我敢说,很多硬件工程师和射频工程师没有真正理解有源器件和无源器件,三分钟钟带你吃透!
    在电子电路中,我们经常会遇到两种基本类型的器件:有源器件和无源器件。这两种器件在电路中的工作方式、能量来源以及功能特性上有着本质的区别。有源器件是指那些在工作时需要外部电源提供能量的器件。这类器件能够控制、放大或产生电能,常见的例子包括晶体管、集成电路、运算放......
  • 10分钟学会Docker的安装和使用
    前言在现代软件开发中,Docker作为一种轻量级的容器化技术,已成为开发者必备的工具之一。本文将带您在10分钟内快速掌握Docker的安装和基本使用方法。1.Docker是什么?Docker是一种开源的容器化平台,它通过将应用程序及其所有依赖项打包到一个标准化的单元中,使应用程序能够在......