java实现链队列
java实现链队列的类代码:
package linkqueue;
public class LinkQueue {
	class Element
	{
		Object elem;
		Element next;
	}
	private Element front;
	private Element rear;
	private Element header = null;
	/**
	 * 初始化队列
	 * */
	void initQueue()
	{
		header = new Element();
		front = new Element();
		rear = new Element();
		front=header;
		rear=header;
	}
	/**
	 * 向队列插入元素
	 * */
	void enQueue(Object o)
	{
		Element e=new Element();
		e.elem=o;
		if(rear==header)//第一次插入元素
		{
			rear=e;
			header.next=e;
			front.next=e;
		}else
		{
			rear.next=e;
			rear=e;
		}
	}
	/**
	 * 出队
	 * */
	Object deQueue()
	{
		Object o = null;
		if(rear==header)
		{
			System.out.println("队列为空!");
		}else
		{
			o=front.next.elem;
			if(front.next==rear)//队中只有一个元素
			{
				front.next=header;
				rear=header;
			}else//队中大于一个元素
			{
				front.next=front.next.next;
			}
		}
		return o;
	}
	/**
	 * 打印队列
	 * */
	void print()
	{
		System.out.print("打印队列:");
		Element temp = front;
		while(temp!=rear)
		{
			System.out.print(temp.next.elem+"\t");
			temp=temp.next;
		}
		System.out.println();
	}
}
测试类代码:
package linkqueue;
public class LinkQueueMain {
	public static void main(String[] args) {
		LinkQueue lQueue = new LinkQueue();
		lQueue.initQueue();
		System.out.println("出队操作:"+lQueue.deQueue());
		lQueue.enQueue(1);
		lQueue.enQueue(2);
		lQueue.enQueue(3);
		lQueue.enQueue(4);
		lQueue.enQueue(5);
		lQueue.print();
		System.out.println("出队操作:"+lQueue.deQueue());
		System.out.println("出队操作:"+lQueue.deQueue());
		lQueue.print();
		System.out.println("出队操作:"+lQueue.deQueue());
		System.out.println("出队操作:"+lQueue.deQueue());
		lQueue.print();
		System.out.println("出队操作:"+lQueue.deQueue());
		System.out.println("出队操作:"+lQueue.deQueue());
		lQueue.print();
	}
}
java实现链队列的更多相关文章
- java与数据结构(8)---java实现链队列
		链队列 实际上就是单链表,只是规定了删除在队头进行,添加在队尾进行. 链队列代码结构 package list.queue; public interface Queuable<T>; p ... 
- 【Java】 大话数据结构(7) 循环队列和链队列
		本文根据<大话数据结构>一书,实现了Java版的循环队列.链队列. 队列:只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 1.循环队列 队列的顺序储存结构:用数组存储队列,引入 ... 
- java实现链式队列
		java实现链式队列...比较简单 package datastruct; public class QueueLink implements Queue { // 定义一个节点内部类 class N ... 
- 队列的理解和实现(二) ----- 链队列(java实现)
		什么是链队列 链队是指采用链式存储结构实现的队列,通常链队用单链表俩表示.一个链队显然需要两个分别指示队头和队尾的指针,也称为头指针和尾指针,有了这两个指针才能唯一的确定. package 链队列; ... 
- Java实现链式存储的二叉查找树(递归方法)
		二叉查找树的定义: 二叉查找树或者是一颗空树,或者是一颗具有以下特性的非空二叉树: 1. 若左子树非空,则左子树上所有节点关键字值均小于根节点的关键字: 2. 若右子树非空,则右子树上所有节点关键字值 ... 
- Java实现链式存储的二叉树
		二叉树的定义: 二叉树(BinaryTree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的.分别称作这个根的左子树和右子树的二叉树组成. 二叉树的遍历方式主要 ... 
- Java:阻塞队列
		Java:阻塞队列 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 1. 概述 概念 队列 队列就可以想成是一个数组,从一头进入,一头出去,排队买饭 阻塞队列 B ... 
- JAVA防盗链在报表中的应用实例
		今天我们来聊聊Java防盗链,多说无用,直接上应用案例. 这里所用的工具是报表软件FineReport,搭配有决策系统(一个web前端展示系统,主要用于权限控制),可以采用java防盗链的方式来实现页 ... 
- javascript实现数据结构与算法系列:队列 -- 链队列和循环队列实现及示例
		1 队列的基本概念 队列(Queue):也是运算受限的线性表.是一种先进先出(First In First Out ,简称FIFO)的线性表.只允许在表的一端进行插入,而在另一端进行删除. 队首(fr ... 
随机推荐
- Selenium模拟登陆简书
			from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.c ... 
- bzoj4034 树上操作
			Description 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操作 2 :把某个节点 x 为根的子树中 ... 
- linux基础命令学习(一)系统的关机、重启以及注销
			1.shutdown shutdown 参数说明: [-t] 在改变到其它runlevel之前﹐告诉init多久以后关机. [-r] 重启计算器[reboot]. [-k] 并不真正关机﹐只是送警告信 ... 
- XY8782S00 BL-W8782   BL-R8782MS1 SDIO接口 高性能、低功耗、体积小 wifi无线模块
			1.产品简介 BL-8782是一款高性能.低功耗.体积小SDIO接口无线模组,符合IEEE802.11N标准,并向下兼容IEEE802.11B/G标准,支持IEEE 802.11i安全协议,以及IEE ... 
- 关于JAVA_HOME, CLASSPATH和PATH的设置
			http://bbs.csdn.net/topics/120079565 1.PATH,这个是给WINDOWS操作系统用的,告诉命令行里,执行的命令行工具在那里,比如java,javac这都是命令行工 ... 
- Control an LM317T with a PWM signal
			http://www.edn.com/design/analog/4363990/Control-an-LM317T-with-a-PWM-signal The LM317T from Nationa ... 
- hdu 1272 小希的迷宫(java实现)
			小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ... 
- 菜鸟学Java(二十)——你知道long和Long有什么差别吗?
			Java中数据类型分两种: 1.基本类型:long,int,byte,float,double2.对象类型:Long,Integer,Byte,Float,Double其他一切java提供的,或者你自 ... 
- CentOS6.5使用yum命令方便快捷安装Nginx与卸载
			原文:https://my.oschina.net/ramboo/blog/223408 当然,首先要求是可以联网的CentOS系统,因为yum安装需要互联网连接. 卸载命令:yum remove n ... 
- 【IntellJ IDEA】idea上所有代码都报错了
			可能会碰到蓝屏,内存溢出重启idea等特殊情况. 重新打开idea后发现原本的代码全都报错了 正确的解决方法: 方法很简单 执行idea工具栏上下面的菜单: File -> Invalidate ... 
