数据元素出队列rear=0rear=0FFELO5E440033112DD2B-front=lCcfront=2front=orear=0L40312队列空状态front==rear
1 5 4 0 3 2 E D F B C rear=0 front=1 1 5 4 0 3 2 E D F C rear=0 front=2 1 5 4 0 3 2 rear=0 front=0 队列空状态front==rear 数据元素出队列
解决顺序循环队列的队列满和队列空状态判断问题通常有三种方法:(1)少用一个存储空间当少用一个存储空间时,以队尾rear加1等于队头front为队列满的判断条件,即队列满的判断条件此时为:(rear + 1) % maxSize == front队列空的判断条件仍然为:rear==front
解决顺序循环队列的队列满和队列空状态判断问 题通常有三种方法: (1)少用一个存储空间 当少用一个存储空间时,以队尾rear加1等于 队头 front为队列满的判断条件,即队列满的判断条 件此时为: (rear + 1) % maxSize == front 队列空的判断条件仍然为: rear = = front
rear=5front=0E5A40312DBC(5+1)%6=0此时队列满
1 5 4 0 3 2 E D A B C front=0 rear=5 (5+1)%6=0 此时队列满
(2)设置一个标志位设标志位为tag,初始时置tag=0;每当入队列操作成功就置tag=1;每当出队列操作成功就置tag=0。则队列空的判断条件为:rear==front&&tag=-0队列满的判断条件为:rear==front&&tag==1
(2)设置一个标志位 设标志位为tag,初始时置tag=0;每当入队列操作 成功就置tag=1;每当出队列操作成功就置tag=0。则 队列空的判断条件为: rear == front && tag==0 队列满的判断条件为: rear = = front && tag= =1
(3)设置一个计数器设计数器为count,初始时置count=O每当入队列操作成功就使coun加1;每当出队列操作成功就使count减1。这样该计数器不仅具有计数功能,而且还具有像标志位一样的标志作用,则此时队列空的判断条件为:count==队列满的判断条件为:count>0&&rear==front
(3)设置一个计数器 设计数器为count,初始时置count=0;每当入队列 操作成功就使count加1;每当出队列操作成功就使 count减1。这样该计数器不仅具有计数功能,而且还 具有像标志位一样的标志作用,则此时队列空的判断 条件为: count == 0 队列满的判断条件为: count > 0 && rear = = front