Page 86 - 高中 信息技术 选择性必修1 数据与数据结构
P. 86

第三章  线性数据的组织和存储







                           基于循环队列的特征,在编程实现队列的几种操作时,要配合取模(余数)运算,同
                      时队头标志和队尾标志会有以下几种变化:
                           (1)初始化队列:front = rear = 0

                           (2)入队操作:rear = (rear+1) % maxsize
                           (3)出队操作:front = (front+1) % maxsize
                           (4)队空条件:front == rear

                           (5)队满判断:(rear+1) % maxsize == front
                           与顺序队列不同,循环队列的队满判断、元素入队、元素出队及求队列长度的操作可
                      描述为:

                           (1)判断队列是否为满:当rear的下一个位置等于front时,队列为满,返回true,否
                                             广东教育出版社
                      则返回false。
                           (2)入队操作:如果队列非满,则将元素x放入队尾标志rear所指位置,然后rear指向
                      下一个位置。

                           (3)出队操作:如果队列为空,返回空元素(NULL),否则返回队头标志front所指
                      的元素,然后front指向下一个位置。

                           (4)取当前队列长度:如果队尾标志rear大于或等于队头标志front,返回rear与front
                      之差,否则返回循环队列最大长度与(front-rear)之差。
                           程序代码可参考配套学习资源包中的文档“第三章\课本素材\循环队列的操作代
                      码.docx”。




                           实 践

                           根据表3-4“超市排队自助服务请求与应答分析”,思考如何采用顺序队列或循环队

                      列完成其队列操作,对比优劣并编写程序实现超市排队自助服务功能。可参考配套学习资
                      源包“第三章\课本素材\排队自助服务系统.cpp”。




                               项目实施


                           各小组根据项目选题及拟订的项目方案,结合本节所学知识,分工开展探究活动,根
                      据前面所分析的在项目活动中待解决的排队问题,完成以下任务:

                           1. 基于已定义的队列和已分析的需要实施的队列操作,编写完整的程序,解决排队问
                      题。同时对程序进行运行测试,检验结果的正确性。

                           2. 形成本项目活动的成果,形式可以是研究报告、问题解决方案说明书等,可附上相
                      应程序。








              78  78







          21X2204.indd   78                                                                                        2019/9/26   13:53:18
   81   82   83   84   85   86   87   88   89   90   91