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 ...
随机推荐
- Visual Studio 2017为Android APK包签名
Visual Studio 2017为Android APK包签名 为Android APK包签名,可以保证后期的App顺利升级.在Visual Studio 2015中,IDE会自动生成两个AP ...
- Hibernate 基于外键的双向一对一关联映射
之前简单介绍了基于外键的单项一对一的关联映射关系,本文简单介绍基于外键的双向一对一的关联映射. 1.设计表结构 表结构对于双向一对一来说没有多少改变,只是双向都可以获取到对方. 2.创建Person对 ...
- 【BZOJ 2753】 2753: [SCOI2012]滑雪与时间胶囊 (分层最小树形图,MST)
2753: [SCOI2012]滑雪与时间胶囊 Time Limit: 50 Sec Memory Limit: 128 MBSubmit: 2457 Solved: 859 Descriptio ...
- [SDOI2017]数字表格 --- 套路反演
[SDOI2017]数字表格 由于使用markdown的关系 我无法很好的掌控格式,见谅 对于这么简单的一道题竟然能在洛谷混到黑,我感到无语 \[\begin{align*} \prod\limits ...
- 【期望DP】BZOJ2134- 单选错位
[题目大意] 有n道题,第i道题有ai个选项.一个人把所有的正确答案填到了后面一题上(特殊的,当i=n的时候填到1上),问他期望做对几道题? [思路] 沙茶题……显然每道题的期望是独立的. 对于某道题 ...
- 按考分对学生排序 Exercise08_03
/** * @author 冰樱梦 * 时间:2018年12月 * 题目:按考分对学生排序 * */ public class Exercise08_03 { public static void m ...
- Spring Cloud项目启动脚本
#!/bin/bash source /etc/profile cd `dirname $0` BIN_DIR=`pwd` echo "$BIN_DIR"#项目名称 SERVER_ ...
- 【树链剖分/倍增模板】【洛谷】3398:仓鼠找sugar
P3398 仓鼠找sugar 题目描述 小仓鼠的和他的基(mei)友(zi)sugar住在地下洞穴中,每个节点的编号为1~n.地下洞穴是一个树形结构.这一天小仓鼠打算从从他的卧室(a)到餐厅(b),而 ...
- 常用SQL Server规范集锦及优化
原文地址:http://www.cnblogs.com/liyunhua/p/4526195.html
- HDU 5671 Matrix 水题
Matrix 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5671 Description There is a matrix M that has ...