java数据结构之队列和栈
import java.util.LinkedList;
import java.util.Queue;
/**
* java.util.Queue
* 队列
* 队列也可以存放一组元素,但是存取元素必须
* 遵循:先进先出原则。
* @author LZQ
*
*/
public class QueueDemo {
public static void main(String[] args) {
/*
* LinkedList也实现了队列接口,因为它可以
* 保存一组元素,并且首位增删快。正好符合队列
* 的特点。
*/
Queue<String> queue = new LinkedList<String>();
/*
* boolean offer(E e)
* 入队操作,向队尾追加一个新元素。
*/
queue.offer("one");
queue.offer("two");
queue.offer("three");
queue.offer("four");
queue.offer("five");
queue.offer("six");
System.out.println(queue);
/*
* E poll()
* 出队操作,从队首获取元素,获取后该元素
* 就从队列中被删除了。
*/
String str = queue.poll();
System.out.println(str);
System.out.println(queue);
/*
* E peek()
* 引用队首元素,但是不做出队操作
*/
//[two, three, four]
str = queue.peek();//two
System.out.println(str);//[two, three, four]
System.out.println(queue);
System.out.println("size:"+queue.size());
System.out.println("遍历开始!");
System.out.println("size:"+queue.size());
// for(int i=queue.size();i>0;i--) {
// str = queue.poll();
// System.out.println("元素:"+str);
// }
while(queue.size()>0) {
str = queue.poll();
System.out.println("元素:"+str);
}
System.out.println("遍历完毕!");
System.out.println(queue);
}
}
<br/>
import java.util.Deque;
import java.util.LinkedList;
/**
* 栈
* 存储一组元素,但是存取元素时必须遵循先进后出的原则。
* 通常为了实现后退这类功能时会使用栈
* @author LZQ
*
*/
public class StackDemo {
public static void main(String[] args) {
/*
* java.util.Deque
* 双端队列,两端都可以进出队列。
* 当 只调用从一端进出队操作时,就形成了
* 栈结构。
* 因此,双端队列为栈提供了了两个方法:
* push,pop
*/
Deque<String> stack = new LinkedList<String>();
/*
* void push(E e)
* 入栈操作,最后入栈的元素在栈顶(第一个元素的位置)
*/
stack.push("one");
stack.push("two");
stack.push("three");
stack.push("four");
System.out.println(stack);
/*
* 出栈操作
* E pop()
*/
String str = stack.pop();
System.out.println(str);
System.out.println(stack);
str = stack.peek();
System.out.println(str);
System.out.println(stack);
System.out.println("开始遍历!");
while(stack.size()>0) {
str = stack.pop();
System.out.println(str);
}
System.out.println("遍历完毕!");
System.out.println(stack);
}
}

浙公网安备 33010602011771号