循环队列的优点是什么?如何判断它的空和满?
优点:
相对于直线队列来讲,直线队列在元素出队后,头指针向后移动,导致删除元素后的空间无法在利用,即使元素个数小于空间大小,依然无法再进行插入,即所谓的“假上溢”。当变成循环队列之后,删除元素后的空间仍然可以利用,最大限度的利用空间。
判断方式:
1、采用计数器来判断,空时,计数器为0,满时,计数器为maxsize。
2、另设一个布尔变量以匹别队列的空和满。
3、少用一个元素的空间,约定入队前,测试尾指针+1后是否等于头指针,若相等则认为队满。(注意:rear所指的单元始终为空,如果用尾指针=头指针来判断的话,是不知道是空还是满的,因为空和满尾指针都等于头指针);