您好,登錄后才能下訂單哦!
這篇文章主要講解了“C語言算法積累加tag的循環隊列怎么實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C語言算法積累加tag的循環隊列怎么實現”吧!
若希望循環隊列中的元素都能得到利用,則需設置一個標志域tag,并以tag的值為0或1來區分隊頭指針front和隊尾指針rear相同時的隊列狀態是“空”還是“滿”。
試編寫與此結構相應的入隊和出隊算法。
關鍵字:
循環隊列+tag的使用
需要變量:隊頭指針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”法的循環隊列入隊算法:
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”法的循環隊列入隊算法:
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的循環隊列怎么實現”的內容了,經過本文的學習后,相信大家對C語言算法積累加tag的循環隊列怎么實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。