大小為n的陣列順序儲存佇列,佇列最大長度為什麼是n

2021-05-06 07:51:55 字數 2855 閱讀 7703

1樓:寂寞你說

我是搞手機的 ,你看能不能想手機團隊求助

當利用大小為n的陣列順序儲存一個佇列時,該佇列的最大長度為?

2樓:匿名使用者

a:n-2 b:n-1 c:n d:n+1n+1

因為佇列的頭指標指向的是第一個元素的前一個結點 ,而不是指向第一個元素,因此佇列的頭指標要佔用一個

結點長度,所以佇列的長度就是n+1;

3樓:匿名使用者

n+1因為佇列的頭指標指向的是第一個元素的前一個結點 ,而不是指向第一個元素,因此佇列的頭指標要佔用一個

結點長度,所以佇列的長度就是n+1;

4樓:魚兒

最大為n 然後還能+1 什麼操作

當利用大小為n的陣列順序儲存一個佇列時,採用犧牲一個單元來區分隊空和隊滿,該佇列的最大長度是

5樓:匿名使用者

樓主和handin應該是同一個人吧。

上一個問題我回答過了,既然犧牲了一個單元,那麼佇列的最大長度自然是:n-1

另外,如果你問n最大多少的話,那麼取決與你的下標寬度(當然還有記憶體大小)。比如32位整數下標就是2^32長。

6樓:賣萌自粽

你問的應該是迴圈佇列:應該是n-1個,判斷隊空是front==rear,判斷隊滿是front==(rear-1)%m(m是迴圈佇列的總長度)

為什麼在一個用一維陣列a[n]表示的迴圈佇列中,該佇列中的元素個數最多為n-1個

7樓:匿名使用者

因為需要區分佇列空和佇列滿的狀態,當頭指標和尾指標相等時佇列為空,當尾指標在頭指標前一個位置時佇列為滿。尾指標所指向的位置必須空著,所以能用的元素個數為n-1。

■資料結構的一道題

8樓:匿名使用者

為n-1, 因為佇列需要設定成迴圈佇列,所以必須有一個空格來區分佇列的頭和尾的分界線。

舉個例子:一個長度為4的陣列做迴圈佇列,現在插入1,2,3,4四個數字:

作為佇列,需要兩個指標:隊頭指標head和隊尾指標tail。初始的時候(隊空),這兩個指標是重合的,假設都指向a[1]位置。如下

a[0] = null

a[1] = null<-- head(tail)

a[2] = null

a[3] = null

每插入一個值,tail指標向後移一個,每刪除一個值,隊頭指標向「前」移動一個。那麼插入1,2,3三個數以後,佇列的情況如下:

a[0] = null <-- tail

a[1] = 1 <-- head

a[2] = 2

a[3] = 3

如果現在插入4會出現什麼情況?

a[0] = 4

a[1] = 1 <--head(tail)

a[2] = 2

a[3] = 3

隊頭指標和隊尾指標再次重合!但是從第一步我們可以知道,隊空的標誌正是head和tail兩個指標重合(事實上這也正是我們判斷佇列是否為空的標準)。這樣的話,隊滿和隊空的標誌是一樣的,這時不可接受的。

因此一個長度為n的陣列來作為迴圈佇列的話,佇列的長度最長只能為n-1, 隊空標誌是head和tail重合,隊滿標誌是tail在head「前」一位。

9樓:匿名使用者

為n,每個陣列元素儲存一個佇列元素,當然,這個佇列需要設定成迴圈佇列!

10樓:匿名使用者

yesterday2651分析得很有道理,不過如果增加一個標誌變數,用來區分head和tail重合時,佇列是空還是滿的話,結果就是n了.

對於最大長度為n的佇列,進隊操作出現溢位,問:此 時佇列中資料元素的個數可能有多少個?為什麼?

11樓:聽不清啊

對於最大長度為n的佇列,進隊操作出現溢位,則此時佇列中資料元素的個數可能有n-1個。因為有一個附加結點。

12樓:植珈藍澍

最大長度為n的佇列進行超限,出現一些此時對接中心元素的數可

利用大小為n的陣列和隊頭,隊尾指標儲存迴圈佇列,不再附加任何標誌,則佇列元素最多為?

13樓:匿名使用者

應該是n-1

必須空一個位置。無論兩個指標如何擺放,如果允許n個元素的話,佇列滿的狀態會和佇列空的狀態相同,會產生嚴重問題。因此空一個位置最安全。

比如佇列空是 write == read

佇列滿是 (write + 1) mod n == read

一個資料結構題,很容易,高分

14樓:海外精選

以上答案都不對~注意條件,是順序儲存,所以儲存順序因該是a[0],a[1],a[2]....,a[n-1],又指標top是n+1表示棧空,棧空時因該訪問到的是棧底下面一個元素,及a[-1](不在陣列範圍內),可猜想訪問的方法是a[n-top],則棧滿時,n-top=n-1,則top=1~正解

15樓:

順序儲存,top=n+1表示棧空,可以假設top=n表示棧裡有一個元素,。。。top=1表示有n個元素,即棧滿

16樓:

一般是top=0表示棧空,這樣如果空間不夠了,直接把n開大就可以了,不用改其他的.你這樣很麻煩.

17樓:

這個順序儲存的陣列應該是倒過來用的,即陣列的高地址為棧的低地址,且能儲存n個資料,固棧滿的條件應是top<0

當利用大小為n的陣列順序儲存佇列時,該佇列的最大長度為

a n 2 b n 1 c n d n 1n 1 因為佇列的頭指標指向的是第一個元素的前一個結點 而不是指向第一個元素,因此佇列的頭指標要佔用一個 結點長度,所以佇列的長度就是n 1 n 1因為佇列的頭指標指向的是第一個元素的前一個結點 而不是指向第一個元素,因此佇列的頭指標要佔用一個 結點長度,所...

C把字串按照A Z的順序排列,儲存在陣列中。先增加新的字串,將它插入到陣列中

最簡單的就是用bailist,如下 du listliststr new list 建立listliststr.add z liststr.add y liststr.add c 向list中加入元素,不像數zhi組,list可以無dao限的加下去,沒有回越界問題 liststr.sort 排序答 ...

對具有整數的陣列 從下標為N的元素開始直到最後元素,依次向前移動位置。輸出移動後的結果

include stdio.h main printf n for i n 1 i 10 i a i a i 1 for i 0 i 9 i printf d,a i 寫函式,對具有十個整數的陣列進行操作 從第n個元素開始直到最後一個元素,依次向前移動一個位置輸出結果 include include...