3.5离散时间模拟

        在日常生活中,我们经常会遇到许多为了公共秩序而需要排队的情景。这样一类活动中模拟程序通常需要用到队列和线性表之类的数据结构,因此是队列的典型应用之一。

例如银行业务的模拟程序:

         假设某银行有4个窗口对外接待客户,由于每个窗口每次只能服务一个客户,所以当人多的时候所有窗口都有人的时候,新来的客户需要排队等候;如果4个窗口中有至少有一个是没人的那么客户来就可以办理业务。

          现在需要编制一个程序来模拟这种业务活动的计算,并计算出一天中客户在银行办理业务需要的平均时间(包括等待时间)。为了计算这个时间,我们需要知道客户到达的时间和离开的时间。模拟程序中需要的数据结构是队列,需要4个队列分别表示4个窗口排队的情况,队列中客户的主要信息是客户的达到时间和客户办理事务所需时间。

         任何时刻即将发生的事件只有下列5中可能:

         1.新客户到达;2.一号窗口客户离开;3.二号窗口客户离开;4.三号窗口客户离开;5。四号窗口客户离开。


        表示5中事件的事件的有序链表的元素类型定义如下:

         typedef  struct{

                        int  OccurTime;               //事件发生时间

                        int  NType;                       //事件类型,上述5种的一种

         }Event,ElemType;                   //Event表示事件类型;ElemType表示有序链表的数据元素类型

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值