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

猜你喜欢

转载自www.cnblogs.com/javazero/p/11961815.html