<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                > 隊列是一種先進先出的線性表,它只允許在表的一段進行插入,而在另外一端刪除元素。? > ![](https://box.kancloud.cn/2016-02-25_56ce7d1f760df.jpg)? > ![](https://box.kancloud.cn/2016-02-25_56ce7d1f842cd.jpg)? > ![](https://box.kancloud.cn/2016-02-25_56ce7d1f842cd.jpg) 隊列的順序表示—用一維數組base[M] ~~~ #define M 100//最大隊列長度 Typedef struct{ QElemType *base; int front; int rear; }SqQueue; ~~~ ![](https://box.kancloud.cn/2016-02-25_56ce7d1f96ea9.jpg) ~~~ 空隊標志:front==rear 入隊:base[rear++]=x; 出隊:x=base[front++]; ~~~ 但是這樣做存在一個問題,如下:? ![](https://box.kancloud.cn/2016-02-25_56ce7d1fa5ffa.jpg) front=0 front≠0? rear=M時 rear=M時? 再入隊—真溢出 再入隊—假溢出? 該怎樣解決呢?? —-循環隊列? ![](https://box.kancloud.cn/2016-02-25_56ce7d1fb4b98.jpg) ~~~ base[0]接在base[M-1]之后 若rear+1==M 則令rear=0; 實現:利用“模”運算 入隊: base[rear]=x; rear=(rear+1)%M; 出隊: x=base[front]; front=(front+1)%M; ~~~ 又出現另外一個問題? ![](https://box.kancloud.cn/2016-02-25_56ce7d1fc432d.jpg) 解決方案:? 1.另外設一個標志以區別隊空、隊滿? 2.少用一個元素空間:? 隊空:front==rear? 隊滿:(rear+1)%M==front ### 循環隊列 ~~~ #define MAXQSIZE 100 Typedef struct{ QElemType *base;//初始化的動態分配存儲空間 int front;//頭指針 int rear;//尾指針 }SqQueue; ~~~ 循環隊列初始化 ~~~ Status InitQueue(SqQueue &Q) { Q.base=new QElemType[MAXQSIZE] if(!Q.base)exit(OVERFLOW); Q.front=Q.rear=0; return OK; } ~~~ 循環隊列的長度 ~~~ int QueueLength(SqQueue Q){ return (Q.rear-Q.front+MAXQSIZE)%MAXQSIZE; } ~~~ 循環隊列入隊 ~~~ Status EnQueue(SqQueue &Q,QElemType e){ if((Q.rear+1)%MAXQSIZE==Q.front) return ERROR; Q.base[Q.rear]=e; Q.rear=(Q.rear+1)%MAXQSIZE; return OK; } ~~~ 順環隊列出隊 ~~~ Status DeQueue(LinkQueue &Q,QElemType &e) { if(Q.front==Q.rear) return ERROR; e=Q.base[Q.front]; Q.front=(Q.front+1)%MAXQSIZE; return OK; } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看