LinkedList实现的栈和队列_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > LinkedList实现的栈和队列

LinkedList实现的栈和队列

 2013/9/10 19:06:40  fangguanhong  程序员俱乐部  我要评论(0)
  • 摘要:LinkedList实现栈:packagecom.shengsiyuan;importjava.util.LinkedList;/***栈(先进后出)*类:Stack<br>*描述:TODO<br>*作者:fangguanhongfangguanhong@163.com<br>*时间:Sep9,20139:14:57PM*/publicclassStack{/***存放栈里面的元素
  • 标签:实现 list 队列
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文档。
发表评论
用户名: 匿名