zoukankan      html  css  js  c++  java
  • 循环队列判满和判空的两种方式

      在循环队列中,Q.front表示对头,Q.rear表示队尾。因为队列大小是有限的,所以在队列指针移动的时候,会出现到头的情况,这时候需要指针回到起点。

    所以入队时Q.rear=Q.rear+1%Maxsize,出队时,Q.front=Q.front+1%Maxsize.而如果一个队列是如下这种结构

    • 在这种结构下,当出现队列满和队列空的情况,这两种情况是一样的,Q.rear=Q.front.为空,一直移除,Q.front一直与rear接近在这种结构下,当出现队列满和队列空的情况,这两种情况是一样的,Q.rear=Q.front.为空,一直移除,Q.front一直与rear接近,入队时,一直增大rear,直到等于front。在这种情况下,是无法判断谁是空,谁是满,所以有了另外的一些小处理。

    • 在这两种结构下都是队列满,但是第二种是Q.rear指向空,下一位是Q.front才代表队列满。所以牺牲了一个空间,而这种情况下,Q.rear=Q.front代表队列空,也就区分开了,还可以把Q.front指向空下一位是第一个元素,这样的话,就会出现Q.front下一位是Q.rear代表空,而Q.rear=Q.front代表队列满,这与刚刚的方式是相反的。
  • 相关阅读:
    Android中的Keyevent
    Android的RecyclerView
    Android中的Context
    Android中数据的传递以及对象序列化
    Android中的多线程编程
    Android中的dp, px, pt
    Android中的内容提供器
    Android中的数据保存
    Android中ListView的用法
    Android中Activity的启动模式
  • 原文地址:https://www.cnblogs.com/cold-windy/p/10884685.html
Copyright © 2011-2022 走看看