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