順序表的迴圈佇列
請設計乙個佇列,滿足:
(1)初始時隊列為空;(2)入隊時,允許增加佇列占用空間;
(3)出隊後,出隊元素所占用的空間可重複使用,即整個佇列所占用的空間只增不減;
(4)入隊操作和出隊操作的時間複雜度始終保持為o(1)。
順序儲存無法滿足(2)的「佇列占用空間隨著入隊而增加」,(1)容易滿足;
鏈式儲存方便開闢新空間,要求(2)容易滿足;
要求(3)出隊後的結點並不真正釋放,用隊頭指標指向新的隊頭結點,新元素入隊時,有空餘結點則無須開闢新空間,賦值到隊尾後的第乙個空結點即可,然後用隊尾指標指向新的隊尾結點,即設計成乙個首尾相接的迴圈單鏈表(類似迴圈佇列)。設定隊頭、隊尾指標後,鏈式佇列的入隊和出隊操作的時間負責度均為o(1)。
因此鏈式儲存結構(兩段式單向迴圈鍊錶),隊頭指標為front,隊尾指標為rear。
迴圈鏈式佇列的實現可以參考迴圈佇列,
不同之處在於迴圈鏈式佇列可以方便增加空間,出隊的結點可以迴圈利用,入隊時空間不夠也能動態增加。
迴圈鏈式佇列也要區分隊滿和隊空情況,此處參考迴圈佇列犧牲乙個單元來判斷。
初始時,建立只有乙個空閒結點的迴圈單鏈表,頭指標front和尾指標rear均指向空閒結點。
隊空的判定條件:front==rear。
隊滿的判定條件:front==rear->next
【注意】插入的是右邊那個結點(第乙個結點),左邊的是「隊空」時的結點。
【解析】在入隊和出隊具體操作前一定要記得判斷隊滿or對隊空(其實第二問也有提示==);
若隊滿則插入乙個新的空結點(不要慣性思維是隊滿就不能入隊。。)
2023年408網路IP大題
ps 題目第一段提到的vlan介紹 解析 1 首先,裝置2 3不能是路由器,如裝置2連的2臺主機同屬乙個網段,所以2 3為交換機。路由器隔離廣播域,乙個網段就是乙個衝突域,乙個區域網就是乙個廣播域。2 裝置1為路由器,其介面應配置ip位址。if1介面與路由器r相連,其相連介面的ip位址為192.16...
佇列 鏈式佇列
主要是鏈式佇列用單鏈表來實現,說白了還是對單鏈表的應用。為了操作實現方便,這裡採用帶頭結點的單鏈表結構。鍊錶的頭部作為隊首,鍊錶的尾部作為隊尾。一共設定兩個指標,乙個隊首指標和乙個隊尾指標,如圖所示。package 佇列的實現 public inte ce queue package 佇列的實現 p...
2023年GBN網路大題
1 gbn協議中 主機甲在給主機乙傳送資料幀並捎帶確認時,只能對按序到達的最後乙個資料幀 第二問是r1,3 進行確認,即確認號為1 1 2。2 sr協議中,接收方逐個確認正確接收的分組,不管接收到的分組是否有序,只要正確接收就傳送選擇ack分組進行確認 即sr中的ack分組不再像gbn一樣具有 累計...