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