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 ...