寒假自學資料結構打卡 Day4 佇列

2021-10-18 07:18:47 字數 935 閱讀 6128

1.離線列印輸出

2.多使用者分時使用cpu和記憶體

3.實時控制系統,訊號按接受的優先順序處理

initquene(&q);//構造空佇列q

destroyquene(&q);//銷毀佇列

clear(&q);//清空佇列

length(q);//返回佇列長度

gethead(q.&e);//返回隊頭

enquene(&q,e);//把e插入隊尾

dequene(&q,e);//刪除隊頭

​ 若front停留在0處,而rear已達maxsize,則繼續入隊將會發生真溢位​,此時佇列已滿。如果rear已達maxsize而front不在0處,此時佇列還未滿,但不能繼續存值,發生假溢位。可以移動佇列中的元素來解決假上溢問題,但時間複雜度比較高。

​ 另一種方法是使用迴圈佇列。想象一下,把陣列第乙個位置接在最後乙個位置後面。如果rear已經達到了maxsize,就把他變為0。實現方法是利用取餘。

​ 使用迴圈列表後,隊空和隊滿都會出現front==rear,這就導致難以判斷。解決方法是少用乙個元素空間,即使佇列還不滿,我們也認為佇列滿了,這樣就可以避免這種情況。

求佇列長度

return(rear-front+maxsize)%maxsize;
入隊
q.base[s.rear]=x;

q.rear=(q.rear+1)%maxsize;

出隊
e=q.front;//e接收隊頭元素

q.front=(q.front+1)%maxsize;//隊頭加一

銷毀鏈隊
while(q.front)

插入元素
q.rear->next=p;

q.rear=p;

寒假自學資料結構打卡 Day1 單鏈表

眾所周知,南京某頂著985,211,雙一流名頭的三本大學的放假時間是極晚的,若不是學生鬧一鬧,恐怕得到二月份才放假。上學期的c 課我雖然考了100,但越學越覺得力不從心。所以抽出來寒假來學一下資料結構。資料結構書配合網課雖然易於理解,但使用的畢竟是類c語言而且還不完整,所以用c 來實操一下就特別有必...

學習資料結構Day4

鍊錶 之前看過了動態陣列,棧和佇列,雖然我們把第乙個叫做動態陣列,但是,他們的底層實質上還是靜態陣列。靠 resize來實現動態陣列。而鍊錶是真正的資料結構 相當於是一串火車,將資料放在車廂中,兩個車廂之間還需要乙個個節點來相互串聯。優點 實現了真正的動態。缺點 無法進行隨機訪問 public cl...

《大話資料結構》筆記 day4

讓陣列的元素都是由兩個資料域組成,data和cur。陣列的每個下標都對應乙個data和乙個cur。data用來存放資料元素,cur相當於單鏈表中的next指標,存放該元素的後繼在陣列中的下標。這種用陣列描述的鍊錶叫做靜態鍊錶 陣列第乙個和最後乙個元素作為特殊元素處理,不存資料。通常把未被使用的陣列元...