Java鏈棧一般由鏈表實現,即通過節點相連的方式存儲數據。鏈棧與普通棧的操作一樣,只是不同的數據結構實現方法不同。
下面是Java鏈棧的入棧代碼:
public void push(Object o) { Node newNode = new Node(o); if (isEmpty()) { top = newNode; } else { newNode.next = top; top = newNode; } size++; }
入棧操作首先需要新建一個節點,將數據對象存儲到該節點中。如果當前棧為空,則將該節點設置為棧頂元素,否則將該節點設置為棧頂元素的前驅,再將該節點設置為新的棧頂元素。最后,將棧的大小加1。
下面是Java鏈棧的出棧代碼:
public Object pop() { if (isEmpty()) { throw new EmptyStackException(); } Object data = top.data; top = top.next; size--; return data; }
出棧操作首先需要判斷當前棧是否為空。如果為空,則拋出異常。否則,將棧頂元素的數據對象賦值給一個臨時變量并返回。接著,將棧頂元素的后繼設置為新的棧頂元素,再將棧的大小減1。