【算法】借助LinkedList 类中的方法实现栈  

 1、栈的实现

             1)栈的功能:进栈、出栈、返回栈口元素……

            

            2)详解的过程看代码吧:

      

[java]  view plain  copy

  1. import java.util.*;  
  2.   
  3. //1借助LinkedList 类中的方法实现栈  
  4. public class MyStack {  
  5.     private LinkedList<Object> li=new LinkedList<Object>();  
  6.       
  7.     //1构造方法  
  8.     public MyStack(){  
  9.           
  10.     }  
  11.       
  12.     //2出栈  
  13.     public Object pop(){  
  14.         if(isEmpty()){  
  15.             throw new EmptyStackException();  
  16.         }  
  17.         return li.removeFirst();  
  18.     }  
  19.       
  20.     //3进栈  
  21.     public void push(Object obj){ //注意o不要0的区别,不要写成0了  
  22.         li.addFirst(obj);  
  23.     }  
  24.       
  25.     //4清空  
  26.      public void clear() {  
  27.            li.clear();  
  28.         }  
  29.     //5判断是否为空  
  30.     public boolean isEmpty(){  
  31.         return li.isEmpty();  
  32.     }  
  33.       
  34.     //6 将对象转换成字符串  
  35.     public String toString(){  
  36.         return li.toString();  
  37.     }  
  38.        
  39.      //7返回栈口元素  
  40.     public Object peek(){  
  41.         if(isEmpty()){  
  42.             throw new EmptyStackException();  
  43.         }  
  44.         return li.peekFirst();  
  45.           
  46.     }  
  47.       
  48.     public static void main(String[] args) {  
  49.         MyStack stack=new MyStack();  
  50.         //进栈  
  51.         stack.push("a");  
  52.         stack.push("b");  
  53.           
  54.         //出栈  
  55.         System.out.println(stack.pop());  
  56.           
  57.         //返回栈口元素  
  58.         System.out.println(stack.peek());  
  59.           
  60.   
  61.     }  
  62.   
  63. }  

    

 

  2、队列的实现:

       1)队列的功能:队尾进,队首出、....

       2)详细的见代码:

 

[java]  view plain  copy

  1. import java.util.*;  
  2.   
  3. //借助LinkedList 类中的方法实现队列  
  4. public class MyQueue {  
  5.     private LinkedList<Object> li = new LinkedList<Object>();  
  6.   
  7.     // 1构造方法  
  8.     public MyQueue() {  
  9.   
  10.     }  
  11.   
  12.     // 2出列  
  13.     public Object get() {  
  14.         if (isEmpty()) {  
  15.             throw new EmptyStackException();  
  16.         }  
  17.         return li.removeFirst();  
  18.     }  
  19.   
  20.     // 3进列  
  21.     public void put(Object obj) {  
  22.         li.addLast(obj);  
  23.     }  
  24.   
  25.     // 4清空  
  26.     public void clear() {  
  27.         li.clear();  
  28.     }  
  29.   
  30.     // 5 返回队列首元素(不删除)  
  31.     public Object getTop() {  
  32.         if (isEmpty()) {  
  33.             throw new EmptyStackException();  
  34.         }  
  35.         return li.peekFirst();  
  36.     }  
  37.   
  38.     // 6将对象转换成字符串  
  39.     public String toString() {  
  40.         return li.toString();  
  41.     }  
  42.   
  43.     // 7判断队列是否为空  
  44.     public boolean isEmpty() {  
  45.         return li.isEmpty();  
  46.     }  
  47.   
  48.     public static void main(String[] args) {  
  49.         MyQueue mq = new MyQueue();  
  50.         // 进列  
  51.         mq.put("a");  
  52.         mq.put("b");  
  53.         mq.put("c");  
  54.   
  55.         // 出列  
  56.         System.out.println(mq.get());  
  57.         System.out.println(mq.get());  
  58.   
  59.         // 返回对首元素  
  60.         System.out.println(mq.getTop());  
  61.   
  62.     }  
  63. <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">      </span>  
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页