C語言算法積累加tag的循環(huán)隊列
題目:
若希望循環(huán)隊列中的元素都能得到利用,則需設(shè)置一個標志域tag,并以tag的值為0或1來區(qū)分隊頭指針front和隊尾指針rear相同時的隊列狀態(tài)是“空”還是“滿”。
試編寫與此結(jié)構(gòu)相應(yīng)的入隊和出隊算法。
關(guān)鍵字:
循環(huán)隊列+tag的使用
思路 :
循環(huán)隊列:
需要變量:隊頭指針front,隊尾指針rear,增減元素的開關(guān):tag
1)入隊算法
尾插法:Q.data[Q.rear]=x;Q.rear=(Q.rear+1)%Maxsize;Q.tag=1
隊空條件:Q.front== Q.rear且Q.tag==0
2)出隊算法
頭結(jié)點刪除:x=Q.data[Q.front];Q.front=(Q.front +1)%Maxsize;Q.tag=0
隊滿條件:Q.front == Q.rear且Q.tag=1
注意:當刪除之后鏈表為空時,還需增加一步,將尾指針指向頭結(jié)點
1.設(shè)“tag”法的循環(huán)隊列入隊算法:
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)隊列入隊算法:
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;
}
以上就是C語言算法積累加tag的循環(huán)隊列的詳細內(nèi)容,更多關(guān)于C語言算法tag循環(huán)隊列的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
matlab?GUI指紋識別門禁系統(tǒng)介紹及源碼實現(xiàn)
這篇文章主要為大家介紹了matlab?GUI指紋識別門禁系統(tǒng)的介紹及源碼實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-02-02

