# define maxsize 20typedef struct sqqueue{ DataType data [maxisize];int front ,rear;} SaQueueTp;SqQueueTp sq;此段語句是什么意思?sq.rear=(sq.rear+1)%maxsize;sq.data{sq.rear]=x;這兩句我都不是很理解。 小弟C語言知識薄弱,還請大俠講解,謝謝!
1 回答
開滿天機
TA貢獻1786條經驗 獲得超13個贊
這是用數組來模擬循環隊列,隊列的性質是先進先出。該結構體中的data代表隊列,data數組中的一個元素代表隊列中的一個元素。
第一句sq.rear=(sq.rear+1)%maxsize;,rear表示后一個節點的編號,正常情況下,后一個節點編號都是比當前節點的編號大1,所以取sq.rear+1,而當到了最后一個節點,由于是循環隊列,故它的下一個節點是第一個節點,其編號變為0,綜合到一起,就可以通過(sq.rear+1)%maxsize這樣一個表達式來表示下一個節點的編號。
第二句中有個小錯誤,左括號為方括號,而不是花括號。其含義為對隊列的第rear個元素賦值。
添加回答
舉報
0/150
提交
取消
