學習佇列所遇到的問題

2021-08-15 11:08:40 字數 1274 閱讀 4905

1.佇列的定義?

佇列是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出的線性表,簡稱fifo。允許插入的一端為隊尾,允許刪除的一端為隊頭。

2.迴圈佇列的定義?

我們把佇列的這種頭尾相接的順序儲存結構稱為迴圈佇列。

3.判斷迴圈佇列是否滿的條件?通用的長度計算公式?

定義佇列的最大尺寸為queuesize,那麼佇列滿的條件就是(real+1)%queue

size == front。通用的長度計算公式為(real - front + queuesize)% queuesize.

4.什麼是鏈佇列?

佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,我們把它簡稱為鏈佇列。

5.佇列的鏈式儲存結構的入隊和出隊操作?

入隊操作時,就是在鍊錶尾部插入結點,將data值給新節點,將尾指標向後移動。

出隊操作時,就是頭節點的後繼結點出隊,將頭節點的後繼改為它後面的結點,若煉表除頭節點外只剩乙個元素時,則需將real指向頭結點。

6.在程式設計時要選擇的佇列型別?

總的來說,在可以確定佇列長度的最大值的情況下,建議用迴圈佇列,如果無法預估佇列的長度時,使用鏈佇列。

7.棧和佇列的相似處和區別?

棧是限定僅在表尾進行插入和刪除操作的線性表。佇列是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。二者均可以用線性表的順序儲存結構來實現,但都存在者順序儲存結構的一些弊端。

8.棧和佇列的分類?

棧:順序站,兩棧共享空間,鏈棧。

佇列:順序佇列,迴圈佇列,鏈佇列。

9.迴圈佇列和鏈佇列的比較?

從時間上,二者的基本操作都是常數時間,即都為o(1)的,不過迴圈佇列是事先申請好空間,使用期間不釋放,而對於鏈佇列,每次申請和釋放結點會存在時間開銷,如果入隊出隊頻繁,則二者還是有細微差異。

從空間上,迴圈佇列必須有乙個固定的長度,所以就有了儲存元素個數和空間浪費的問題。而鏈佇列不存在這個問題,儘管需要指標域占用空間,但可以接受。在空間上,棧佇列更靈活。

10.**:
status enqueue(linkqueue *q,qelemtype e)

s_data = e;

s->next = null;

q->rear->next = s;

q->rear = s;

return ok;

}

今天所遇到的問題

首先,昨天晚上做完了xenomai與linux核心編譯的任務,今天交付了 問題一 虛擬機器解除安裝 虛擬機器在安裝的時候目錄不太對,受不了就想把目錄改了,改的時候發現改不了,我就在任務管理器裡面把有關程序刪了,刪完發現,嘿果然能改目錄了,結果改完後虛擬機器裡面的linux不能用了,重啟電腦都不能用,...

git所遇到的問題

出現這種情況,或 error repository not found.fatal 無法讀取遠端倉庫。解決辦法如下 1 先輸入 git remote rm origin 刪除關聯的origin的遠端庫 2 再輸入 git remote add origin git github.com github...

安裝freebayes所遇到的問題

git clone recursive git 安裝好後會出現乙個freebayes資料夾,然後進入它 cd freebayes之後開始編譯,使用make make此時,就可能會出現問題,無法編譯 因為我的centos安裝了g gcc c 所以這裡沒有辦法演示錯誤資訊 這個原因就是用g gcc c ...