首页 > 代码库 > Java使用LinkedList模拟一个堆栈或者队列数据结构

Java使用LinkedList模拟一个堆栈或者队列数据结构

用Java模拟一个堆栈或者队列数据结构。

首先得明白堆栈和队列的数据结构:

堆栈:先进后出
队列:先进先出

LinkedList中刚好有addFirst()和addLast()方法。

[java] view plaincopyprint?
  1. public class Stack {  
  2.         public static void main(String[] args) {  
  3.             StackTools tools = new StackTools();  
  4.             tools.add("a");  
  5.             tools.add("b");  
  6.             tools.add("c");  
  7.             tools.add("d");  
  8.               
  9.             tools.remove();  
  10.         }  
  11. }
  12.  
  13. private class  StackTools {  
  14.     private LinkedList<String> linkedList;  
  15.     public StackTools(){  
  16.         linkedList = new LinkedList<String>();  
  17.     }  
  18.       
  19.     public void add(String string){  
  20.         linkedList.addFirst(string);  
  21.     }  
  22.       
  23.     public void remove(){  
  24.         for(int i = 0; i < linkedList.size(); i++){  
  25.                 String content = linkedList.get(i);  
  26.                 System.out.println(content);  
  27.             }  
  28.     }  
  29.           
  30. }  
打印结果:
[java] view plaincopyprint?
  1. d  
  2. c  
  3. b  
  4. a  
这是先进后出,这就是堆栈的数据结构,队列就简单了,只要把addFirst()方法改成addLast()方法就行。

代码如下:

[java] view plaincopyprint?
  1. public class Queue {  
  2.         public static void main(String[] args) {  
  3.             QueueTools tools = new QueueTools();  
  4.             tools.add("a");  
  5.             tools.add("b");  
  6.             tools.add("c");  
  7.             tools.add("d");  
  8.               
  9.             tools.remove();  
  10.         }  
  11. }
  12.  
  13. private class QueueTools {  
  14.     private LinkedList<String> linkedList;  
  15.     public QueueTools(){  
  16.         linkedList = new LinkedList<String>();  
  17.     }  
  18.       
  19.     public void add(String string){  
  20.        linkedList.addLast(string);  
  21.     }  
  22.       
  23.     public void remove(){  
  24.         for(int i = 0; i < linkedList.size(); i++){  
  25.                 String content = linkedList.get(i);  
  26.                 System.out.println(content);  
  27.             }  
  28.     }        
  29. }  

Java使用LinkedList模拟一个堆栈或者队列数据结构