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指標,存放該元素的後繼在陣列中的下標。這種用陣列描述的鍊錶叫做靜態鍊錶 陣列第乙個和最後乙個元素作為特殊元素處理,不存資料。通常把未被使用的陣列元...