佇列是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出的線性表,簡稱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 ...