当前位置: 代码迷 >> 综合 >> (集合)LInkedList---队列与栈
  详细解决方案

(集合)LInkedList---队列与栈

热度:38   发布时间:2024-01-10 04:54:59.0

 

LinkedList提供了addFirst(),addLast(),removeFirst()方法操作集合中的元素

基于这些功能,就可以实现队列与栈的数据结构。

 

队列---先进先出FIFO

 

 

import java.util.Collection;
import java.util.LinkedList;public class Queue<E> {private LinkedList<E> link;Queue() {link = new LinkedList<E>();}public void add(E e) {link.addLast(e);}public void addAll(Collection<? extends E> coll) {link.addAll(coll);}public E getNext() {return link.removeFirst();}public boolean isEmpty() {return link.isEmpty();}
}

 

 

	public static void main(String[] args) {List<String> list = new ArrayList<String>();list.add("123");list.add("abc");list.add("000");printQueue(list);}private static void printQueue(List<String> list) {Queue<String> queue = new Queue<String>();queue.add("------------");queue.addAll(list);queue.add("$$$$$$$$$$$$");while(!queue.isEmpty()) {System.out.println(queue.getNext());}}

 结果

------------
123
abc
000
$$$$$$$$$$$$

 

 

栈---后进先出FILO

 

import java.util.Collection;
import java.util.LinkedList;public class Stack<E> {private LinkedList<E> link;public Stack() {link = new LinkedList<E>();}public void add(E e) {link.addFirst(e);}public void addAll(Collection<? extends E> coll) {Object[] elements = coll.toArray();int size = elements.length;for(int index=size-1;index>=0;index--)add((E)elements[index]);}public E getNext() {return link.removeFirst();}public boolean isEmpty() {return link.isEmpty();}
}

 

	public static void main(String[] args) {List<String> list = new ArrayList<String>();list.add("123");list.add("abc");list.add("000");printStack(list);}public static void printStack(List<String> list) {Stack<String> stack = new Stack<String>();stack.add("------------");stack.addAll(list);stack.add("$$$$$$$$$$$$");while(!stack.isEmpty()) {System.out.println(stack.getNext());}}

 结果

$$$$$$$$$$$$
123
abc
000
------------