淺談數據結構 -- 棧(stack) 隊列 (queue)

數據結構 -- 棧(stack)

介紹

棧是限制插入和刪除只能在同一個位置上進行的表,該位置是表的末端,叫作棧頂(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();

   }
}

 

 

運行結果

 

 

數據結構 -- 隊列(queue)

介紹

隊列,一種特殊的線性表,特殊之處在於它只容許在表的前端(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
微信

相關文章
相關標籤/搜索