银行业务队列简单模拟

该博客介绍了一个简单的银行业务队列模拟问题,其中A窗口处理速度是B窗口的两倍。给定顾客序列,按照业务完成顺序输出顾客编号。博客提供了输入说明、输出格式,并给出了测试用例,讨论了顺序存储和链式存储的解决方案,最后邀请读者提出改进意见。
摘要由CSDN通过智能技术生成

银行业务队列简单模拟

      设某银行有 A 、B 两个业务窗口 ,且处理业务的速度不 一样 ,其中 A 窗口处理速度是 B 窗口 的 2 倍–即当 A 窗口每处理完 2 个顾客时 ,B 窗口处理完 1 个顾客 。给定到达银行的顾客序列 ,请按业务完成的顺序输出顾客序列 。假定不考虑顾客先后到达的时间间隔 ,并且当不同窗口 同时处理完 2 个顾客时 ,A 窗口顾客优先输出 。

  • 输入说明 :
          输入为 一行正整数 ,其中第 1 个数字 N ( N <1000 )为顾客总数 ,后面跟着 N 位顾客的编号 。编号为奇数的顾客需要到 A 窗口办理业务 ,为偶数的顾客则去 B 窗口。数字间 以空格分隔 。
  • 输出说明 :
          按业务处理完成的顺序输出顾客的编号 。数字间以 空格分隔 ,但最后一个编号后不能有多余的空格
  • 测试用例 :
    在这里插入图片描述
  • 顺序存储:
typedef struct {
   
 int data[MAXSIZE];             
 int last;
}list;
int creatlist(list *l,list *_l)
{
   
 int i=0,j=0,k=0,a,count; list *p1 = l,*p2=_l;
 scanf_s("%d", &count);
 if (!count) return 0;
 while(i < count ){
   
  scanf_s(" %d",&a );
  if (a % 2 == 0)           //_l 偶B 窗口 l 奇A 窗口
   p2->data[j++] = a;
  else
   p1->data[k++] = a;
  i++;
 }
 p1->last = k;
 p2->last = j;
 return 1;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值