浅谈数据结构 -- 栈(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
微信

相关文章
相关标签/搜索