循环优先级队列解决客户优先级服务问题

来源:互联网 发布:软件设计师 任铄 网盘 编辑:程序博客网 时间:2024/06/06 19:49

问题:
客服坐席处理客户(手机号码,带有优先级)来电按照5个优先级别(级别为1~5)进行处理,不同优先级别的用户在对应级别的队列中等候,如果前一级别的队列为空,则后继队列中等待的客户优先级自动升高一级,例如级别3的队列为空,则级别4和5的队列中客户的优先级自动升高一级。为了防止优先级低的用户饿死,低优先级的队列需要随着时间提高优先级,请写出程序实现解决该问题。

分析:

首先建立5个节点的循环队列(单向循环队列即可),每个节点指向一个队列的地址,该队列中存储用户信息,每隔10分钟,把循环队列中head位置指向的队列加入到head所指向的下一个位置的队列的前面,然后把循环队列head移向下一个位置,tail指针移到原来的head位置,相当于把原来优先级为1的队列降为5,2、3、4、5队列的优先级升为1、2、3、4,同时把原来队列1中没有处理完毕的用户插入到新的队列1中的前部继续处理。

头文件PRQueue.h:

 

main文件:

原创粉丝点击