java 队列 数据结构

package dataStructure.BinaryTree;

public class MyQueue <T>{
	private static class queueNode<T>{
		//队列结点
		private T data;
		private queueNode<T> next;

		queueNode(T data){
			this.data = data;
		}
	}

	private queueNode<T> head;
	private queueNode<T> tail;
	private int length;

	/**
	 * 初始化队列
	 */
	public MyQueue(){
		head = null;
		tail = null;
		length = 0;
	}

	/**
	 * 元素入队
	 * @param node
	 */
	public void enQueue(queueNode<T> node){
		if (isEmpty()){
			head = node;
			tail = node;
			length++;
			return;
		}
		tail.next = node;
		tail = tail.next;
		length++;
		return;
	}

	/**
	 * 队尾元素出队并返回该元素
	 * @return
	 */
	public queueNode<T> deQueue(){
		if (!isEmpty()){
			queueNode<T> temp = head;
			head = head.next;
			length--;
			return temp;

		}
		return null;
	}

	/**
	 * 清空队列
	 */
	public void emptyQueue(){
		head = tail = null;
		length = 0;
	}

	/**
	 * 返回队列元素
	 * @return
	 */
	public int getLength() {
		return length;
	}

	/**
	 * 判断队列是否为空
	 * @return
	 */
	public boolean isEmpty(){
		return length == 0;
	}

	/**
	 * 显示队列中的元素
	 */
	public void display(){
		queueNode<T> temp = head;
		while (temp != null){
			System.out.print(temp.data + "\t");
			temp = temp.next;
		}
		System.out.println();
	}
	public static void main(String[] args){
		MyQueue<Integer> q = new MyQueue<>();
		q.enQueue(new queueNode<>(1));
		q.enQueue(new queueNode<>(2));
		q.enQueue(new queueNode<>(3));
		q.enQueue(new queueNode<>(4));
		q.enQueue(new queueNode<>(5));
		q.enQueue(new queueNode<>(6));
		q.display();
		q.deQueue();
		q.display();
		System.out.println(q.getLength());
		q.emptyQueue();
		q.display();
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值