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

Posted lihuiupupup

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构——队列链表实现相关的知识,希望对你有一定的参考价值。

队列抽象数据结构之一,遵循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;
		}
				 
	}
}

  

以上是关于数据结构——队列链表实现的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点# 双端链表实现队列

初级--04---链表反转----链表实现栈队列双端队列

基础数据结构

[DataStructure]线性数据结构之稀疏数组链表栈和队列 Java 代码实现

[DataStructure]线性数据结构之稀疏数组链表栈和队列 Java 代码实现

考研数据结构模板:顺序表链表栈队列