队列的理解和实现(二) ----- 链队列(java实现)
什么是链队列
链队是指采用链式存储结构实现的队列,通常链队用单链表俩表示。一个链队显然需要两个分别指示队头和队尾的指针,也称为头指针和尾指针,有了这两个指针才能唯一的确定。
package 链队列;
public class LinkQueue {
class Element {
Object data;
Element next;
public Element() {
this.data = null;
this.next = null;
}
public Element(Object data) {
this.data = data;
this.next = null;
}
public Element(Object data, Element next) {
this.data = data;
this.next = next;
}
}
private Element front;
private Element rear;
public LinkQueue() {
front = null;
rear = null;
}
public void enQueue(Object data) {
Element e = new Element(data);
if(this.front != null) {
this.rear.next = e;
rear = e;
}
else {
this.front = this.rear = e;
}
}
public void deQueue() {
if(this.front != null) {
Element p = front;
front = front.next;
if(p == rear) { //队列中只有一个元素
rear = null;
}
}
else System.out.println("队列为空");
}
public Object getHead() {
if(front != null) {
return front.data;
}
else return null;
}
public int getLength() {
Element p = front;
int length = 0;
while(p != null) {
p = p.next;
length++;
}
return length;
}
public boolean isEmpty() {
return front == null ? true : false;
}
public static void main(String[] args) {
LinkQueue q = new LinkQueue();
System.out.println("队列是否为空:" + q.isEmpty());
System.out.println("连续入队=========");
for (int i = 0; i < 5; i++) {
q.enQueue(i);
}
System.out.println("队列的长度为: " + q.getLength());
System.out.println("队首元素为:" + q.getHead());
System.out.println("连续出队=========");
for (int i = 0; i < 3; i++) {
q.deQueue();
}
System.out.println("队列是否为空:" + q.isEmpty());
System.out.println("队列的长度为: " + q.getLength());
System.out.println("队首元素为:" + q.getHead());
}
}
队列的理解和实现(二) ----- 链队列(java实现)的更多相关文章
- 队列的理解和实现(一) ----- 循环队列(java实现)
什么是队列 我们都知道栈是先进后出的一种线性表,与之相反的是,队列是一种先进先出的线性表.它只允许在表的一端进行插入,而在另一端进行删除.举个例子来说,在生活中我们买东西需要进行排队,最先排队的可以最 ...
- 【Java】 大话数据结构(7) 循环队列和链队列
本文根据<大话数据结构>一书,实现了Java版的循环队列.链队列. 队列:只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 1.循环队列 队列的顺序储存结构:用数组存储队列,引入 ...
- 用OC基于链表实现链队列
一.简言 在前面已经用C++介绍过链队列的基本算法,可以去回顾一下https://www.cnblogs.com/XYQ-208910/p/11692065.html.少说多做,还是上手撸代码实践一下 ...
- IM开发基础知识补课(五):通俗易懂,正确理解并用好MQ消息队列
1.引言 消息是互联网信息的一种表现形式,是人利用计算机进行信息传递的有效载体,比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一. 消息从发送者到接收者的典型传递方式有两种: 1)一种我 ...
- 优先队列——二项队列(binominal queue)
[0]README 0.1) 本文文字描述部分转自 数据结构与算法分析, 旨在理解 优先队列——二项队列(binominal queue) 的基础知识: 0.2) 本文核心的剖析思路均为原创(inse ...
- 数据结构 - 链队列的实行(C语言)
数据结构-链队列的实现 1 链队列的定义 队列的链式存储结构,其实就是线性表的单链表,只不过它只能尾进头出而已, 我们把它简称为链队列.为了操作上的方便,我们将队头指针指向链队列的头结点,而队尾指针指 ...
- javascript实现数据结构与算法系列:队列 -- 链队列和循环队列实现及示例
1 队列的基本概念 队列(Queue):也是运算受限的线性表.是一种先进先出(First In First Out ,简称FIFO)的线性表.只允许在表的一端进行插入,而在另一端进行删除. 队首(fr ...
- java与数据结构(8)---java实现链队列
链队列 实际上就是单链表,只是规定了删除在队头进行,添加在队尾进行. 链队列代码结构 package list.queue; public interface Queuable<T>; p ...
- 链队列之C++实现
链队列时建立在单链表的基础之上的.由于是动态分配节点内存,所以无需判满. 链队列的形式如下: 1.队列空 2.队列存在数据 下面介绍下C++实现的链队列,VC6下调试通过. 1.文件组织 2.lq.h ...
随机推荐
- CVE-2017-7494:Linux Samba named pipe漏洞
描述: 漏洞是由于代码中一个管道申请命令的判断导致的,可以通过构造特定请求执行上传的so文件. 漏洞影响了Samba 3.5.0 之后到4.6.4/4.5.10/4.4.14中间的所有版本. 测试: ...
- rtx自定义面板不更新
服务器和客户端自定义面的文件分别在下列xml中. 程序员的基础教程:菜鸟程序员
- HttpClient详解
HttpClient:是一个接口 首先需要先创建一个DefaultHttpClient的实例 HttpClient httpClient=new DefaultHttpClient(); 发送GET请 ...
- 四元数--结合《real time rendering》中关于四元数部分
四元数产生于1843年,是复数的一个扩展,所以里面包含了一些复数的运算.直到1985年才在图形学中使用. 四元数的优势是,相对与矩阵和欧拉角,四元数更直观和方便.四元数还可以用作某些方向上的插值,而欧 ...
- [Training Video - 2] [Java Introduction] [Operator, Loops, Arrays, Functions]
Operator : While Loop : For Loop : Arrays : Code : public class FirstJavaClass { public static void ...
- 获取weibo用户所有的关注列表
1.新浪微博Python SDK笔记——获取粉丝列表或关注列表 http://www.tuicool.com/articles/VnQ3ye 2.friendships/friends关注列表 fri ...
- 共享keychain数据
[共享keychain数据] 当往keychain中插入数据时,默认的 kSecAttrAccessGroup 就是App自身的BundleID. [官方文档] You can add a keych ...
- DevExpress,LayoutControl,TreeList,GridControl等
1.显示边框进行折叠 选择一个layoutControlGroupX 将其GroupBordersVisible设置成True,将TextVisiable=True 2. TreeList 2.1需要 ...
- 以json格式打印实体类信息
1.pom.xml <dependency> <groupId>com.google.code.gson</groupId> <artifactId>g ...
- python二叉树染色-有严重BUG
#coding:utf-8 ''' 二叉树涂黑 输入: 5 2 1 -1 4 2 -1 5 4 -1 3 1 1 2 输出: 3 第二题是:斗地主 ''' import sys b=list() cl ...