LinkedList实现栈:
class="java" name="code">package com.shengsiyuan;
import java.util.LinkedList;
/**
 * 栈(先进后出)
 * 类: Stack <br>
 * 描述: TODO <br>
 * 作者: fangguanhong fangguanhong@163.com <br>
 * 时间: Sep 9, 2013 9:14:57 PM
 */
public class Stack {
	/**
	 * 存放栈里面的元素,维护栈里面的元素
	 */
	private LinkedList list = new LinkedList();
	/**
	 * 压栈
	 * 方法: push <br>
	 * 描述: TODO <br>
	 * 作者: fangguanhong fangguanhong@163.com <br>
	 * 时间: Sep 9, 2013 9:16:02 PM
	 * @param o
	 */
	public void push(Object o) {
		list.addLast(o);
	}
	/**
	 * 弹出,从栈里面将最上面的一个元素弹出,相当于删除掉
	 * 方法: pop <br>
	 * 描述: TODO <br>
	 * 作者: fangguanhong fangguanhong@163.com <br>
	 * 时间: Sep 9, 2013 9:16:35 PM
	 * @return
	 */
	public Object pop() {
		if (list != null && list.size() > 0) {
			// 直接返回删除掉的那个元素
			Object obj = list.removeLast();
			return obj;
		}
		return null;
	}
	/**
	 * 查看,只获取此元素本身用作查看,不把此元素弹出
	 * 方法: peek <br>
	 * 描述: TODO <br>
	 * 作者: fangguanhong fangguanhong@163.com <br>
	 * 时间: Sep 9, 2013 9:17:27 PM
	 * @return
	 */
	public Object peek() {
		if (list != null && list.size() > 0) {
			return list.getLast();
		}
		return null;
	}
	/**
	 * 判断栈是否为空,判断栈里面是不是还有元素
	 * 方法: isEmpty <br>
	 * 描述: TODO <br>
	 * 作者: fangguanhong fangguanhong@163.com <br>
	 * 时间: Sep 9, 2013 9:18:53 PM
	 * @return
	 */
	public boolean isEmpty() {
		// if (list != null && list.size() > 0) {
		// return true;
		// }
		// return false;
		return list.isEmpty();
	}
}
LinkedList实现
队列:
package com.shengsiyuan;
import java.util.LinkedList;
/**
 * 队列(先进先出)
 * 类: Queue <br>
 * 描述: TODO <br>
 * 作者: fangguanhong fangguanhong@163.com <br>
 * 时间: Sep 9, 2013 9:11:11 PM
 */
public class Queue {
	/**
	 * 存放队列里面的元素,维护队列里面的元素
	 */
	private LinkedList list = new LinkedList();
	/**
	 * 将元素放到队列里面去
	 * 方法: put <br>
	 * 描述: TODO <br>
	 * 作者: fangguanhong fangguanhong@163.com <br>
	 * 时间: Sep 9, 2013 9:11:56 PM
	 * @param o
	 */
	public void put(Object o) {
		list.addLast(o);
	}
	/**
	 * 从队列里面取出来一个元素,然后把这个元素删掉
	 * 方法: get <br>
	 * 描述: TODO <br>
	 * 作者: fangguanhong fangguanhong@163.com <br>
	 * 时间: Sep 9, 2013 9:12:55 PM
	 * @return
	 */
	public Object get() {
		if (list != null && list.size() > 0) {
			// 直接返回删除掉的那个元素
			Object obj = list.removeFirst();
			return obj;
		}
		return null;
	}
	/**
	 * 判断队列是否为空
	 * 方法: isEmpty <br>
	 * 描述: TODO <br>
	 * 作者: fangguanhong fangguanhong@163.com <br>
	 * 时间: Sep 9, 2013 9:13:43 PM
	 * @return
	 */
	public boolean isEmpty() {
		// if (list != null && list.size() > 0) {
		// return true;
		// }
		// return false;
		return list.isEmpty();
	}
	public static void main(String[] args) {
		Queue queue = new Queue();
		queue.put("one");
		queue.put("two");
		queue.put("three");
		System.out.println(queue.get());
		System.out.println(queue.get());
		System.out.println(queue.get());
		System.out.println(queue.isEmpty());
	}
}
关于栈和队列相关数据结构方面的知识见圣思源笔记Lesson 5里面的collection.pdf文档。