c++隊列 循環(huán)隊列長度的計算公式是怎么得出來的,能具體推導(dǎo)一下嗎?
循環(huán)隊列長度的計算公式是怎么得出來的,能具體推導(dǎo)一下嗎?當隊列的尾部超過最大長度時,隊列的頭部可能沒有超過它。例如,當最大長度為100時,當隊列的尾部為102時(此時,real中的存儲已經(jīng)是2(即10
循環(huán)隊列長度的計算公式是怎么得出來的,能具體推導(dǎo)一下嗎?
當隊列的尾部超過最大長度時,隊列的頭部可能沒有超過它。例如,當最大長度為100時,當隊列的尾部為102時(此時,real中的存儲已經(jīng)是2(即102 0),并且前部可能仍然是98。在這種情況下,隊列長度不能直接由real front計算,而是由(real front maxqsize)%maxqsize計算。即:2-98=-4,錯誤,(2-98 100) 0=4,這是正確的。
當利用大小為n的數(shù)組順序存儲一個隊列時,該隊列的最大長度為?
[n-1
假設(shè)數(shù)組類型為array[n
]type*front,*rear
front=rear=array
join operation
*rear=x
rear
leave operation
front
數(shù)組下標最大為n-1
數(shù)組[n-2]保存數(shù)據(jù)后,實數(shù)指向數(shù)組[n-1。在這個時候,它不能再被保存了,它將被越界。盡管vc6.0可以編譯和運行,但由于vc6.0中沒有嚴格的數(shù)組越界檢查,這是危險的
!所以我的答案是n-1
什么是磁盤隊列長度?
一般來說,它意味著平均磁盤隊列長度。平均磁盤隊列長度是指在采樣間隔期間,對隊列中指定磁盤的平均讀寫請求數(shù)。
求循環(huán)隊列的最大長度為什么要取模%M?
你還在掙扎。你的公式是相反的。例如
一個總長度為10的壞隊列有三個元素,前=4,后=7,在某一時刻有4/5/6
此時,如果你給它加上五個元素,它將變成八個元素,前=4,后=2,后=4/5/6/7/8/9/0/1
那么取絕對值長度(2-4 10)=8是錯誤的