首页 > 其他 > 详细

数据结构——队列链表实现

时间:2018-04-16 23:09:59      阅读:211      评论:0      收藏:0      [点我收藏+]

队列抽象数据结构之一,遵循FIFO原则,通过在初始化时构造队首和队尾两个引用(指针)指向一个空节点,作为空队列的标志

package com.shine.test.datastruct;

import java.util.EmptyStackException;

public class LinkQueue<E> {
	
	private Node front,tail;
	class Node {
		E data;
		Node next;
	}
	
	public LinkQueue() {
		 LinkQueue<E>.Node node = new Node();
		 node.data = null;
		 node.next = null;
		 front = tail = node;
	}
	
	public boolean push(E e) {
		LinkQueue<E>.Node temp = new Node();
		temp.data = e;
		temp.next = null;
		tail.next = temp; //当加入第一个元素是应为tail和front指向同一个对象 所以此时相当于front.next =temp,但以后不是
		tail = temp;
		if(temp != null) {
			return true;
		}
		return false;
	}
	
	public E pop() {
		if(front == tail) {
			throw new EmptyStackException();
		}else {
			LinkQueue<E>.Node temp = front.next; 
			E e = temp.data;
			front.next = temp.next;
			
			if(tail == temp) { //当队列中只有一个元素时 需要将队列置空
				tail = front;
			}
			return e;
		}
				 
	}
	public E peek() {
		if(front == tail) {
			throw new EmptyStackException();
		}else {
			LinkQueue<E>.Node temp = front.next; 
			E e = temp.data;
			
			return e;
		}
				 
	}
}

  

数据结构——队列链表实现

原文:https://www.cnblogs.com/lihuiupupup/p/8859082.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!