/00)*!/#$%%求队列 / 的长度,即队列 / 中的数据元素的个数
(1-!/#$%%返回队列 / 的第一个元素的值
/00!"/#$%%入队列操作,即将数据元素 插到队列 / 的队尾
/00!"/#2$%%出队列操作,删除队列 / 的队头元素,并返回其值
/0010!/#2$%%判断队列 / 是否为满队列,若满则返回 ,否则返回
}/00
综上可得各个类的关系图:
()其它函数
)3+45-4- -!3'&"3#%%将事件 3 按其发生时间顺序插入事件表
)3+4 '!#%%初始化,设第一个客户到达银行的时间为
)3+460+---3!6+#%%处理客户到达事件
)3+460+-&-0-!#%%处理客户离开事件
7)3+4890+!6+#%%银行业务模拟
:)主函数 !#。
.详细设计
由于用单链表存储事件表,用链队列模拟窗口队列,因此要定义 3'& 结构体
(存放事件发生的时间和事件类型)、/'& 结构体(存放客户到达时间和办理业务
所需时间)、结点类 ;+4 和 /00;+4,单链表类 9、链队列类 9/00。
()单链表结点类
&,'&,;+4%%结点类定义
.-4,9'&$%%声明链表类 9 为友元类
&-3<
'&4$%%结点的数据域
;+4'&=>$%%结点的指针域
&0?,<