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