當前位置:首頁 » 操作系統 » 元素的演算法

元素的演算法

發布時間: 2023-07-27 02:08:10

『壹』 求循環隊列的元素個數演算法,已知front 和 rear,還有容量數,怎麼求隊列中的循環元素個數

如果是用數組實現的 用隊尾減隊頭再模數組長度;如果是鏈表 就要有個計數變數了。

front為對頭指針,rear為對尾指針,n為隊列最大元素個數。隊列元素個數=(rear-front+1+n)%n %是求余數。

循環隊列的元素個數計算公式:

如果rear<front結果是rear-front+maxsize;

如果rear>front結果是rear-front;

為了用一個表達式同時表達兩者,用(rear-front+maxsize)%maxsize;

假設maxsize=10;

rear=1 front=9,那麼結果是2;

rear=9 front=1,那麼結果是8。

(1)元素的演算法擴展閱讀

循環隊列中,由於入隊時尾指針向前追趕頭指針;出隊時頭指針向前追趕尾指針,造成隊空和隊滿時頭尾指針均相等。因此,無法通過條件front==rear來判別隊列是"空"還是"滿"。

解決這個問題的方法至少有兩種:

① 另設一布爾變數以區別隊列的空和滿;

②另一種方式就是數據結構常用的: 隊滿時:(rear+1)%n==front,n為隊列長度(所用數組大小),由於rear,front均為所用空間的指針,循環只是邏輯上的循環,所以需要求余運算。

隊已滿,但是rear(5)+1=6!=front(0),對空間長度求余,作用就在此6%6=0=front(0)。

熱點內容
android結束子線程結束 發布:2025-03-15 02:49:24 瀏覽:859
北京理工大學伺服器ip 發布:2025-03-15 02:46:16 瀏覽:707
自動配置腳本怎麼刪除 發布:2025-03-15 02:46:11 瀏覽:808
國內唯一免費的雲伺服器 發布:2025-03-15 02:27:36 瀏覽:980
怎麼重啟遠程伺服器 發布:2025-03-15 02:26:53 瀏覽:248
u盤加密狗復制克隆軟體 發布:2025-03-15 02:20:53 瀏覽:483
能玩VR的電腦要什麼配置 發布:2025-03-15 02:19:36 瀏覽:716
明日之後電腦配置如何提高 發布:2025-03-15 02:08:39 瀏覽:863
c階乘演算法 發布:2025-03-15 02:08:39 瀏覽:365
掛鎖忘記密碼有什麼辦法 發布:2025-03-15 02:04:45 瀏覽:408