棧是限制插入和刪除只能在同一個位置上進行的表,該位置是表的末端,叫作棧頂(top)。棧結構是一種後進先出的(LIFO)的數據結構。對棧的基本操做只有進棧(push)和出棧(pop)兩種,進棧至關於插入,出棧至關於刪除最後的元素。前端
/** * @Description: 數據結構 -- 棧 * @Author: Zero * @Date: 2019/11/28 */ public class MyStack { private LinkedList<String> linkedList; public MyStack () { linkedList = new LinkedList<>(); } public void push (String value) { linkedList.add(value); System.out.println(value + "進棧"); } public void pop () { int size = linkedList.size(); if (size > 0) { System.out.println(linkedList.get(size - 1) + "出棧"); linkedList.remove(size - 1); } else { System.out.println("該棧已經爲空"); } } public void getStack () { System.out.println("當前棧中數據"); System.out.println("--------------"); for (String s : linkedList) { System.out.println(s); } System.out.println("--------------"); } public static void main(String[] args) { MyStack stack = new MyStack(); // 建立一個棧結構 stack.push("A"); // 開始進棧啦 stack.push("B"); stack.push("C"); stack.push("D"); System.out.println(""); stack.getStack(); // 獲取當前棧中的數據 System.out.println(""); stack.pop(); //出棧 stack.pop(); System.out.println(""); stack.getStack(); } }
隊列,一種特殊的線性表,特殊之處在於它只容許在表的前端(front)進行刪除操做,而在表的後端(rear)進行插入操做,一種操做受限制的線性表。進行插入操做的那一端則稱爲隊尾,進行刪除操做的端稱爲隊頭後端
/** * @Description: 數據結構 -- 隊列 * @Author: Zero * @Date: 2019/11/28 */ public class MyQueue { private LinkedList<String> linkedList; public MyQueue () { linkedList = new LinkedList<>(); } public void insert (String value) { linkedList.add(value); System.out.println(value + "進隊列"); } public void remove () { int size = linkedList.size(); if (size > 0) { System.out.println(linkedList.get(0) + "出隊列"); linkedList.remove(0); } else { System.out.println("該隊列爲空"); } } public void getQueue () { System.out.println(linkedList); } public static void main(String[] args) { MyQueue myQueue = new MyQueue(); myQueue.insert("A"); myQueue.insert("B"); myQueue.insert("C"); myQueue.insert("D"); myQueue.getQueue(); myQueue.remove(); myQueue.getQueue(); } }
小編是一枚Java Coder,業餘寫文章,現主營微信公衆號《Java患者》,喜歡的話關注個人公衆號或者加我微信咱們一塊兒學習Java微信