java實現鏈棧與隊列
java實現鏈棧與順序表隊列。鏈棧的實現沒有什么難點,跟單鏈表差不多,只是所有的操作只在表頭進行,并且沒有頭節點,使用top標記。關鍵的操作是push與pop。
當進行push操作時,通過push方法傳入一個object,構建一個新節點node,將node.next設置為原來的top,再將top設置為node即可。
代碼如下:
public void push(Object x) { Node node = new Node(x); node.setNext(top); top = node; }
當進行pop操作時,首先檢查stack是否為空,不為空則將top的數據傳出來,并將top.next設置為top
代碼如下:
public Object pop() throws Exception { if (top == null) { throw new Exception("堆棧為空"); } else { Object object = top.getElement(); top = top.getNext(); return object; } }
隊列一般使用循環隊列,這樣可以避免假溢出,對于順序表的循環隊列代碼的實現沒有太大的意義,關鍵是幾個判斷點需要理解。循環隊列有兩個指針,分別 為front與rear,還有一個記錄隊列長度的maxsize。front指向當前隊列第一個元素所在位置,rear指向最后一個元素后一個位置,通過 front與rear可以對隊列的狀態進行判斷
- 判斷隊列為空。當front==rear時,隊列為空。
- 判斷隊列已滿。當(rear+1)%maxsize ==front時,隊列已滿。
- 求出隊列中的元素個數。number=(rear-front+maxsize)%maxsize。
本文由用戶 ymny 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!