diff --git a/README.md b/README.md index afc6268..e1e9006 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ ## 1.1 问题描述 -设计一个银行业务模拟系统,模拟银行的业务运行并计算一天中客户在银行逗留的平均时间。银行有 $N$ 个窗口对外接待客户,从早晨银行开门起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数多时需分别在各个窗口前排队,对于刚进入银行的客户,如果某个窗口的业务员正在空闲,则可上前办理业务;反之,若 $N$ 个窗口均有客户正在办理业务,新来的客户便会排在人数最少的队伍后面。 +设计一个银行业务模拟系统,模拟银行的业务运行并计算一天中客户在银行逗留的平均时间。银行有 N 个窗口对外接待客户,从早晨银行开门起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数多时需分别在各个窗口前排队,对于刚进入银行的客户,如果某个窗口的业务员正在空闲,则可上前办理业务;反之,若 N 个窗口均有客户正在办理业务,新来的客户便会排在人数最少的队伍后面。 (1)通过人机交互的方式设定程序所需的参数:银行的开门时间和关门时间,营业窗口数目。 @@ -61,7 +61,7 @@ 解决此问题的核心数据结构是有序链表和队列 -客户排队的过程是一个按照到达时间先到先接受服务的过程,这一过程可以通过队列实现。$N$ 个不同的窗口对应 $N$ 个队列,队列中每一个元素对应一个客户。 +客户排队的过程是一个按照到达时间先到先接受服务的过程,这一过程可以通过队列实现。N 个不同的窗口对应 N 个队列,队列中每一个元素对应一个客户。 算法中处理的事件有两类:一类是客户到来事件,另一类是客户离开事件。客户到来事件发生的时刻随客户到来自然形成,客户到来后,使用排序算法找到最短的等待队列,将客户插入队列;客户离开事件发生的时刻由银行窗口为其办理业务的完成时间决定,业务办理完成后,客户从等待队列中出队,窗口为下一个客户(如果存在的话)服务。由于程序驱动是按事件发生时刻的先后顺序进行,则事件表应是有序表,其主要操作是插入和删除事件。 diff --git a/代码 b/代码 index fdd3daf..b54281e 100644 --- a/代码 +++ b/代码 @@ -700,4 +700,10 @@ printf("\n"); return OK; -} \ No newline at end of file +} + + +# 参考文献 + +[1] 严蔚敏, 吴伟民. 数据结构(C语言版). 北京: 清华大学出版社, 2007. +[2] 作者:回到唐朝当少爷 https://www.bilibili.com/read/cv15955830 出处:bilibili