設迴圈佇列為Q 1 m ,其初始狀態為front rear m 經過一系列入隊與退隊運算後,front 20,rear

2022-02-07 17:34:46 字數 5876 閱讀 9360

1樓:城北雨夏

第一步:看題目中有沒有頭指標(front)指向隊首元素這句話,如果沒有,那麼就不用+1

(這個這個很重要)

第二步:出初始狀態是front=rear=m,注意front是頭,rear是尾

第三步:判斷front和rear的大小,這裡front=20,rear=15所以front在上rear在下,為了方便理解,下面上圖

第四步(關鍵步驟):上面已經判斷了front在上,rear在下,所以迴圈佇列中的元素是綠色的部分,灰色的部分是20-15=5,綠色的部分是m-5個元素,題目說的是找尋最小值的元素,最壞情況下需要比較的次數為,就是m-5-1=m-6次(次數等於元素個數-1,如果有5個數,那麼比較4次就可以得到最小值)

第五步:第四步其實已經結束了,這裡講一下front=15,rear=20的情況,這種情況就是front在下,rear在上,迴圈佇列中元素的個數為灰色的部分,為20-15=5個元素,這裡關鍵就是front和rear的大小,並理解front和rear的移動

2樓:匿名使用者

有這樣的一個公式,迴圈對列中元素的個數為(rear-front+m)%m,式中rear為隊尾指標,front為隊首指標,m為儲存容量,%為取餘符號。

對於找最小值的最壞情況下的比較次數,為迴圈對列中元素值個數減一(在這個地方,程式設計題中常出現,主要在for迴圈中。)望採納!

3樓:匿名使用者

如果是正數就不用加35了,如果是負數才要加35 這一題明顯是個小陷阱,開始時候front=rear ,結束了還是front=rear 說明進來的和出去的一樣多啊,你看 如果這是進來一個元素rear就加1,變成rear=1(因為是1:35啊,就是說元素只能排在1-35之間,35排完了就滿了嗎,沒有 35排完了如果再進來元素就該排在1的位置上了.而不是36,這你得明白) 好了 進來一個rear加1 出去一個呢,front加1 就這樣進來出去,進來出去,到最後front和rear還是相等的,那不就說明進來和出去的一樣多嘛.

這樣一來最後的元素就和原來的元素一樣多了,明顯不是0就是35,因為要麼隊空(0個元素),要麼隊滿(35個元素) %是求餘數用的 10%3=1,就是這個意思 那個公式就是純粹數學公式,和程式設計,語言都沒關係. 這種題你畫一張圖最好理解了,當然短一點最好,弄個佇列長度為6的,自己動動手,出對入隊的畫畫就全明白了

4樓:半生青絲笑漠途

迴圈佇列為q(1:m),其初始狀態為front=rear=m,而節點個數為m-(front-rear),且順序查詢的比較次數與實際節點個數一致,故正確選項為c。

所以等於m-5

5樓:匿名使用者

佇列中有m-20+15=m-5個元素,比較次數為m-6

6樓:匿名使用者

rear-front+1+m

迴圈佇列q(1:m),初始狀態為front=rear=m.

7樓:

由front=20,rear=15,知道佇列中從front到尾有(m-20)個元素,尾到rear共有15個元素,則該迴圈佇列共有(m-5)個元素。尋找最小值時,先令最小值為第一個元素,遍歷第2至第(m-5)個元素並更新最小值。因此最壞情況下需要比較(m-6)次。

8樓:高中生三

答案是d。佇列初始狀態為front=rear=m,當front=20,rear=15時,佇列中有m-20+15=m-5個元素,比較次數為m-6次,d選項正確。

解析:首先需要計算迴圈佇列的個數,計算方法是「尾指標減頭指標,若為負值,則加其容量即可」。對於此題元素個數=15—20+m=m-5

因為,需要找出最小指

所以,按照順序比較的方法,比較次數應該比元素數少1,即為m-6。所以選d

注意補充:  若此題尾和頭指標值互換即front=15,rear=20則答案應為a  解析:首先還是要求元素個數rear-front=20-15=5>0因此不需加容量值m, 比較次數減1,因此為4,所以選a 。

9樓:田秀林

選c。當frontrear,佇列中元素個數為m–front+rear當front=rear,佇列為空或滿,即佇列中元素個數為0或m。

所以此題中佇列個數為m–20+15=m–5因為順序查詢,所以最壞結果是比較完所有數,所以為m–5

10樓:zjx遠方的召喚

d佇列初始狀態為front=rear=m,當front=20,rear=15時,佇列中有m-20+15=m-5個元素,比較次數為m-6次,d選項正確。

11樓:孟小靜子

答案是d

解析:首先需要計算迴圈佇列的個數,計算方法是「尾指標減頭指標,若為負值,則加其容量即可」。對於此題元素個數=15—20+m=m-5

因為,需要找出最小指

所以,按照順序比較的方法,比較次數應該比元素數少1,即為m-6。所以選d

注意補充: 若此題尾和頭指標值互換即front=15,rear=20則答案應為a 解析:首先還是要求元素個數rear-front=20-15=5>0因此不需加容量值m, 比較次數減1,因此為4,所以選a 。望採納

12樓:

選d。你這是國二公共基礎的題吧

13樓:匿名使用者

答案是a,,,,,,,,

設迴圈佇列的儲存空間為q(1:35),初始狀態為front=rear=35.現經過一系列入隊與退隊運算後,

14樓:d懂我如你

答案是0或35。前提條件是:此迴圈佇列的儲存空間全部用於儲存資料,而沒有留出一個儲存空間用於判別隊滿與隊空。

在上述迴圈佇列中,當front = rear時,

(1)有可能是隊空:先入隊15個元素,rear = 15;再出隊15個元素,front = 15。

(2)有可能是隊滿:先入隊15個元素,rear = 15;再出隊15個元素,front =

15;最後再入隊35個元素,rear指標迴圈一圈後再次等於15。

綜上,佇列中元素個數為0或35。

但應注意,上述的迴圈佇列由於無法判別隊滿與隊空,導致其產生二義性(即有歧義),可用性降低。因此,改進的方法是少用一個儲存空間,即佇列最大隻儲存34個元素,此時可用下列方法區分隊滿與隊空:

(1)隊滿:(rear + 1)% maxsize == front

(2)隊空:rear == front

計算佇列的元素個數:(尾-頭+表長)%表長

佇列頭指標為front,佇列尾指標為rear,佇列容量為m,則元素個數為|rear-front+m|%m,注意,這個%是求餘運算。

為充分利用向量空間,克服"假溢位"現象的方法是:將向量空間想象為一個首尾相接的圓環,並稱這種向量為迴圈向量。儲存在其中的佇列稱為迴圈佇列(circular queue)。

這種迴圈佇列可以以單連結串列的方式來在實際程式設計應用中來實現。

條件處理:

迴圈佇列中,由於入隊時尾指標向前追趕頭指標;出隊時頭指標向前追趕尾指標,造成隊空和隊滿時頭尾指標均相等。因此,無法通過條件front==rear來判別佇列是"空"還是"滿"。

解決這個問題的方法至少有兩種:

① 另設一布林變數以區別佇列的空和滿;

②另一種方式就是資料結構常用的: 隊滿時:(rear+1)%n==front,n為佇列長度(所用陣列大小),由於rear,front均為所用空間的指標,迴圈只是邏輯上的迴圈,所以需要求餘運算。

如圖情況,隊已滿,但是rear(5)+1=6!=front(0),對空間長度求餘,作用就在此6%6=0=front(0)。

15樓:匿名使用者

當frontrear時,迴圈佇列中的元素個數為n-front+rear(n為迴圈佇列容量)。

當front=rear時,迴圈佇列中的元素個數可能為空,也可能為滿。

此題答案應為0或者35。

16樓:氵墨影灬流沙彡

樓上都在那裡放屁,答案是0或34。儲存空間為(0:35)的時候才是0或35!

17樓:匿名使用者

front==rear, 這個是空佇列的狀態啊

設迴圈佇列的儲存空間為q(1:35),初始狀態為front=rear=35,現經過一系列入隊與退隊

18樓:匿名使用者

如果是正數就不用加35了,如果是負數才要加35

這一題明顯是個小陷阱,開始時候front=rear ,結束了還是front=rear 說明進來的和出去的一樣多啊,你看 如果這是進來一個元素rear就加1,變成rear=1(因為是1:35啊,就是說元素只能排在1-35之間,35排完了就滿了嗎,沒有 35排完了如果再進來元素就該排在1的位置上了。而不是36,這你得明白)

好了 進來一個rear加1 出去一個呢,front加1 就這樣進來出去,進來出去,到最後front和rear還是相等的,那不就說明進來和出去的一樣多嘛。 這樣一來最後的元素就和原來的元素一樣多了,明顯不是0就是35,因為要麼隊空(0個元素),要麼隊滿(35個元素)

%是求餘數用的 10%3=1,就是這個意思 那個公式就是純粹數學公式,和程式設計,語言都沒關係。

這種題你畫一張圖最好理解了,當然短一點最好,弄個佇列長度為6的,自己動動手,出對入隊的畫畫就全明白了

c語言迴圈佇列問題求教

19樓:匿名使用者

這個並沒有錯,可以根據圖分開來算

front指標指向儲存元素位置,rear指標指向第一個未儲存元素位置首先,佇列上半部分,有元素,m-30+1;

其次,佇列下半部分,有元素,10-1;

所以,總共的元素個數為total = m-30+1+10-1 = m-20

c語言問題

20樓:匿名使用者

你這個迴圈佇列是無法放滿30個元素的,因為無法區分front=rear時是空了還是滿了!故只能放少一個元素,當front==(rear+1)%30時,迴圈佇列為滿,放了29個元素!當front==rear,佇列為空!

計算迴圈佇列中有幾個元素可使用

rear+(rear>=front?30:0)-front

21樓:匿名使用者

這是個迴圈佇列問題

有個總結的公式,如果front>rear,則有rear-front+max個元素;(max為儲存空間的最大值,此處為30)

如果front

22樓:匿名使用者

迴圈佇列的幾個公式給你總結下:

對頭指標+1:q.front=(q.front+1)%maxsize

隊尾指標+1:q.reae=(q.rear+1)%maxsize

初始化:q.front=q.rear=0

隊空:q.front=q.rear

隊滿:(q.rear+1)%maxsize=q.front

求長度:(q.rear-q.front+maxsize)%maxsize

%maxsize是為了防止越界,比如一共30個位置,隊尾指到30了,如果+1就到31了,這時候再取模30就得1,那麼隊尾指到的30向後+1就到了1了,迴圈回來了。

題目中,容量也就是maxsize=30。

由上述倒數第二個共識式子(q.rear+1)%maxsize=q.front得出(15+1)%30=16指到佇列已經滿了。

區分隊滿與對空的條件,隊滿是頭尾指標差一個,也就是隊尾指標當前位置如果再後移一個就等於對頭了。滿的情況下,最大容量是比maxsize少1的。

也就是29,也就是你的題的答案。

或者你用求長度的公式來算一下,(15-16+30)%30答案也是29。

q1簽證轉工作籤,q1簽證轉工作籤

辦理工籤的程式以及材料如下 第一步 就業許可申請 11工作日 1.企業法人營業執照副本影印件,批准證書 外資 社保登記證 內資 外商投資企業備案登記表 如果是分公司,還需要提供總公司的營業執照副本影印件和總公司的批准證書影印件 2.聘用外國人的書面報告申請 詳細說明聘用原因,職務,用人單位蓋章 3....

是公比q1的等比數列,且a1 a2 40,a1 a2 256,bn log2an,求數列

解 a1 a2 40,a1a2 256 a1,a2是方程x 40x 256 0的兩根。x 8 x 32 0 x 8或x 32 兩根均為正,則a1,a2均為正,又公比q 1,因此a2 a1a1 8 a2 32 q a2 a1 32 8 4 an a1q n 1 8 4 n 1 2 2n 1 bn lo...

經濟學基礎計算題。已知生產函式QLK當Q10時,Pl

k l 4 1 kl 10 l 1.6,k 6.4 最小成本 4 1.6 1 6.4 12.8 已知生產函式q l k,當q 10,pl 4,pk 1時,求 廠商的最佳要素組合 最小成本是多少?最佳要素組合的條件是 mpl pl mpk pk,通過生產函式分別對k l求偏導,k 4 l 1,即 k ...