循環(huán)隊(duì)列front和rear計(jì)算 循環(huán)隊(duì)列長度的計(jì)算公式是怎么得出來的,能具體推導(dǎo)一下嗎?
循環(huán)隊(duì)列長度的計(jì)算公式是怎么得出來的,能具體推導(dǎo)一下嗎?當(dāng)隊(duì)列的尾部超過最大長度時(shí),隊(duì)列的頭部可能沒有超過它。例如,當(dāng)最大長度為100時(shí),當(dāng)隊(duì)列的尾部為102時(shí)(此時(shí),real中的存儲(chǔ)已經(jīng)是2(即10
循環(huán)隊(duì)列長度的計(jì)算公式是怎么得出來的,能具體推導(dǎo)一下嗎?
當(dāng)隊(duì)列的尾部超過最大長度時(shí),隊(duì)列的頭部可能沒有超過它。例如,當(dāng)最大長度為100時(shí),當(dāng)隊(duì)列的尾部為102時(shí)(此時(shí),real中的存儲(chǔ)已經(jīng)是2(即102 0),并且前部可能仍然是98。在這種情況下,隊(duì)列長度不能直接由real front計(jì)算,而是由(real front maxqsize)%maxqsize計(jì)算。即:2-98=-4,錯(cuò)誤,(2-98 100) 0=4,這是正確的。