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
   74   75   76   77   78   79   80   81   82   83   84