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文档。