日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

C語(yǔ)言算法積累加tag的循環(huán)隊(duì)列_C 語(yǔ)言

作者:aprilzj123 ? 更新時(shí)間: 2022-07-31 編程語(yǔ)言

題目:

若希望循環(huán)隊(duì)列中的元素都能得到利用,則需設(shè)置一個(gè)標(biāo)志域tag,并以tag的值為0或1來(lái)區(qū)分隊(duì)頭指針front和隊(duì)尾指針rear相同時(shí)的隊(duì)列狀態(tài)是“空”還是“滿”。

試編寫(xiě)與此結(jié)構(gòu)相應(yīng)的入隊(duì)和出隊(duì)算法。

關(guān)鍵字:

循環(huán)隊(duì)列+tag的使用

思路 :

循環(huán)隊(duì)列:

需要變量:隊(duì)頭指針front,隊(duì)尾指針rear,增減元素的開(kāi)關(guān):tag

1)入隊(duì)算法

尾插法:Q.data[Q.rear]=x;Q.rear=(Q.rear+1)%Maxsize;Q.tag=1

隊(duì)空條件:Q.front== Q.rear且Q.tag==0

2)出隊(duì)算法

頭結(jié)點(diǎn)刪除:x=Q.data[Q.front];Q.front=(Q.front +1)%Maxsize;Q.tag=0

隊(duì)滿條件:Q.front == Q.rear且Q.tag=1

注意:當(dāng)刪除之后鏈表為空時(shí),還需增加一步,將尾指針指向頭結(jié)點(diǎn)

1.設(shè)“tag”法的循環(huán)隊(duì)列入隊(duì)算法:

int EnQueue1(SqQueue &Q, ElemType x){
   if(Q.front==Q.rear&&Q.tag==1)
return 0;
   Q.data[Q.rear]=x;
   Q.rear=(Q.rear+1)%MaxSize;
   Q.tag=1;
   return 1;
}

2.設(shè)“tag”法的循環(huán)隊(duì)列入隊(duì)算法:

int DeQueue1(SqQueue &Q, ElemType &x){
    if (Q.front==Q.rear&&Q.tag==0)
        return 0;
    x=Q.data[Q.front];
    Q.front=(Q.front+1)%MaxSize;
    Q.tag=0;
    return 1;
  }

原文鏈接:https://blog.csdn.net/aprilzj123/article/details/104603080

欄目分類(lèi)
最近更新