1、为空条件单链表:头结点指针域next==null静态链表:数组最后一个元素值为0循环链表:头结点的指针域指向它本身(循环查找时以p->next!=头结点作为遍历结。
- 文化问答
- 答案列表
判断队列满的条件:判断循环队列满的条件[朗读]
(rear+1)%max==front分析:循环队列其实就是,每次你做front或者rear+1的操作,都要给它取个模.进队列rear+1,变成rear+1取模;出队列front+1,变成front+1取模.而front一般来说是指向队列里第一个元素的.如果往队尾再放一个元素,就要做rear+1取模,这时候rear跟front重叠了,说明队列满了,不能再放了。
因为是循环队列,循环队列的思想是如果队头有空余的位置,则可以把数据插入到队头,从而是一个圈q->front==q->rear+1明显是一个判定条件,判定当前队列是否已满,当当前队列q->front正好为0,q->rear为(maxsize-1,即整个队列的最后一个),q->rear+1就溢出了,(q->rear+1)%maxsize正好就是0,从而可以判断front和rear+1是不是同一个位置。
另设长度计数器是一种方法另设标志位来判断也是一种不过估计你问的是这种,对空:q.front=q.rear队满:(q.rear+1)%maxqsize=q.front因为不管队满还是对空,就实际而言都是q.front=q.rear所以队满判断就需要求余判断。
queue::queue()//buildanemptyqueue{front=0;rear=0;}boolqueue::empty()const{returnrear==front;}(rear+1)%maxqueue==front;为判别队列满的条件即答案选择a。