Page 79 - 高中 信息技术 选择性必修1 数据与数据结构
P. 79
3.3 用队列组织先进先出数据
(1)分析数据关系。
超市为了使顾客的售后服务请求更有序,要求必须排队,排在前面的顾客先服务,排
在后面的顾客后服务。如图3-10所示,顾客以a ,a ,…,a 的顺序进入队列,退出排队也
2
1
n
同样按照这个次序,即只有在顾客a ,a ,…,a n-1 都离队后,顾客a 才能退出排队。若要
1
2
n
设计自助服务系统来实现对排队的管理,采用队列这种数据结构最为合适。
图3-10 超市售后服务请求队列
(2)为服务请求队列建立数据模型。
队列
{
队列元素(一定数量的顾客编号);
队头(即将出队的顾客的位置);
队尾(即将入队的顾客的位置);
} 广东教育出版社
队列的基本操作;
(3)设计自助服务系统的操作。
自助服务系统与顾客、服务台之间互相配合,共同完成服务请求和应答,应该提供客
户取号、服务系统排号以及服务台叫号的基本功能。其中:
取号→生成一个排队编号并将该编号插入到队列的队尾中;
排号→配合取号、叫号,相应改变队列的队头、队尾;
叫号→返回队列中处在队头的编号。
根据队列的概念,以C++语言为例,在程序中我们可以这样定义队列:
typedef struct //数据描述
{
datatype items[maxsize];
// datatype为队列元素的类型,maxsize为队列的最大长度
int front;//队头标志
int rear; // 队尾标志
}Queue;
operations; // 操作声明
71 71
21X2204.indd 71 2019/9/26 13:53:16