實現棧 佇列 鍊錶資料結構(java)

2021-09-24 02:43:10 字數 2108 閱讀 9823

1. 陣列實現棧

public class mystack 

// 壓入元素

public void push(int element)

// 把新增的元素放入新的陣列中

newarr[elements.length] = element;

// 使用新陣列替換舊陣列

elements = newarr;

} public int pop()

// 取出陣列的最後乙個元素

int element = elements[elements.length - 1];

// 建立乙個新的陣列

int newarr = new int[elements.length - 1];

// 原陣列中除了最後乙個元素的其它元素放入新的陣列中

for (int i = 0; i < elements.length - 1; i++)

// 替換陣列

elements = newarr;

// 返回棧頂元素

return element;

} // 檢視棧頂元素

public int peek()

return elements[elements.length - 1];

} // 判斷棧是否為空

public boolean isempty()

//test

public static void main(string args)

}

2.陣列實現佇列

public class myqueue 

//入隊

public void add(int element)

// 把新增的元素放入新的陣列中

newarr[elements.length] = element;

// 使用新陣列替換舊陣列

elements = newarr;

} //出隊

public int poll()

//為節點追加節點

//當前節點

node currentnode=this;

//迴圈向後找

while(true)

//賦給當前節點

currentnode=nextnode;

} //把需要追回的節點追加為找到的當前節點的下乙個節點

currentnode.next=node;

return this; }

//插入乙個節點作為當前節點的下乙個節點

public void after(node node)

//顯示所有節點資訊

public void show()

} system.out.println(); }

//刪除下乙個節點

public void removenext()

//獲取下乙個節點

public node next()

//獲取節點中的資料

public int getdata()

//當前節點是否是最後乙個節點

public boolean islast()

//test

public static void main(string args)

}

4.迴圈鍊錶

5.雙向迴圈鍊錶

public class doublenode 

// 新增節點

public void after(doublenode node)

// 下乙個節點

public doublenode next()

// 上乙個節點

public doublenode pre()

//獲取資料

public int getdata()

}

資料結構 棧 佇列 鍊錶

棧 1,棧只能從表的一端訪問資料,另一端是封閉的。2,在棧中,無論是存資料還是取資料,都必須遵循 先進後出 的原則,即最先進棧的元素最後出棧。基於 棧結構的特點,在實際應用中,通常只會對棧執行以下兩種操作 向棧中新增元素,此過程被稱為 進棧 入棧或壓棧 從棧中提取出指定元素,此過程被稱為 出棧 或彈...

資料結構 棧 佇列 鍊錶

棧 1,棧只能從表的一端訪問資料,另一端是封閉的。2,在棧中,無論是存資料還是取資料,都必須遵循 先進後出 的原則,即最先進棧的元素最後出棧。基於 棧結構的特點,在實際應用中,通常只會對棧執行以下兩種操作 向棧中新增元素,此過程被稱為 進棧 入棧或壓棧 從棧中提取出指定元素,此過程被稱為 出棧 或彈...

Java實現棧 佇列 鍊錶

棧 底層陣列 棧頂指標 public class mystack 自定義構造器,自定義初始化棧大小 public mystack int initsize 插入 public void push int num 刪除 public intpop 檢視 public intpeek 佇列 底層陣列 佇...