Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java数据结构之链式队列的实现

java数据结构之链式队列的实现

作者头像
林老师带你学编程
发布于 2022-11-30 02:36:02
发布于 2022-11-30 02:36:02
42700
代码可运行
举报
文章被收录于专栏:强仔仔强仔仔
运行总次数:0
代码可运行

今天介绍一下数据结构中的链式队列,和线性队列相同的是它也有队头(front),和队尾(rear)。

规则和线性队列相同也是先进先出(FIFO),队尾进,队头出。

下面看具体的链式队列的具体实现案例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package queue;
/**
 * @ClassName: CirQueue
 * @Description: 链式队列
 * @date 2016年6月3日 下午19:55
 * @param 无
 */
public class LinkQueue {
	private class Node{//节点类
		private Object data;
		private Node next;
		public Node(){
			data=null;
			next=null;
		}
		public Node(Object data,Node next){
			this.data=data;
			this.next=next;
		}
	}
	//队未
	private Node rear;
	//队头
	private Node front;
	//队列长度
	private int size=0;
	public LinkQueue(){//初始化数据
		Node node=new Node();
		front=rear=node;
	}
    /** 
     * 将一个对象追加到队列尾部 
     * @param value 
     * @autho  lzq
     */ 
	public void enQueue(Object value){
		Node node=new Node(value,null);
		rear.next=node;
		rear=node;
		size++;
	}
	
    /** 
     * 队列头部出队 
     * @return 返回出列的队头元素
     * @author 林志强  
     */  
	public Object deQueue(){
		if(rear==front){
			return null;
		}else{
			Node temp=front.next;
			front.next=temp.next;
			if(temp.next==null){
				front=rear;
			}
			size--;
			return temp.data;
		}
	}
	
    /** 
     * 队列长度 
     * @return int型的数据
     * @author 林志强  
     */  
	public int size(){
		return size;
	}
	
    /** 
     * 判断是否为空  
     * @return int型的数据
     * @author 林志强  
     */  
    public boolean isEmpty(){  
        return rear==front;  
    }  
    
    /** 
     * 获取队头元素但是不出队
     * @return 返回队头元素
     * @author 林志强  
     */  
    public Object getQueue(){
    	return front.next.data;
    }
    
    /** 
     * 打印队列中数据
     * @author 林志强  
     */  
    public void disPlay(){
    	Node temp=front.next;
    	while(temp!=null){
    		System.out.print(temp.data+"\t");
    		temp=temp.next;
    	}
    	System.out.println();
    }
    
    public static void main(String[] args) {
    	LinkQueue l=new LinkQueue();
    	System.out.println(l.size());
    	System.out.println(l.isEmpty());
    	for(int i=0;i<5;i++){
    		l.enQueue(i);
    	}
    	l.disPlay();
    	System.out.println(l.deQueue());
    	System.out.println(l.deQueue());
    	System.out.println(l.deQueue());
    	l.disPlay();
//    	System.out.println(l.getQueue());
	}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据结构之链式队列的代码实现及有趣应用
本文通过编码实现链式队列类,并模拟一个有趣的应用,能够帮助我们对链式队列有更深度的理解。
智慧zhuhuix
2020/08/14
7030
数据结构之链式队列的代码实现及有趣应用
java实现队列数据结构代码详解
java实现队列数据结构代码详解,简单介绍了队列结构以应用场景,涉及详细实现代码。
科技新语
2025/04/15
1210
java实现队列数据结构代码详解
【Python数据结构系列】☀️《队列(顺序队列、链式队列、双端队列)》——知识点讲解+代码实现☀️
队列,和栈一样,也是一种对数据的"存"和"取"有严格要求的**线性存储结构。 **
天道Vax的时间宝藏
2021/08/12
1.1K0
java数据结构之线性队列的实现
队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。
林老师带你学编程
2022/11/30
4020
java数据结构之线性队列的实现
数据结构与算法——队列
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)线性表。
C you again 的博客
2020/09/15
3840
java数据结构和算法(一)
当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。
shaoshaossm
2022/12/26
5880
java数据结构和算法(一)
链式队列---c++版本
因为删除完最后一个有效节点时,rear为野指针,并且按理rear应该指向队列的尾部,此时队列头尾重合,所以要把rear指向头结点
大忽悠爱学习
2021/03/11
3750
链式队列---c++版本
数据结构——java实现队列
顺序队列: 概念: 队列是一种先进先出的线性表,只允许在一端插入,另一端删除。允许插入的一端称为队尾,允许删除的一端称为队头 顺序队列的实现: 1 import org.junit.jupiter.api.Test; 2 3 /** 4 * 顺序队列 5 * @author wydream 6 * 7 */ 8 9 public class QueueSequence { 10 11 private String[] arr;//队列数组 12 pr
说故事的五公子
2019/09/11
3170
数据结构——java实现队列
《大话数据结构》队列的顺序存储和链式存储
成都的火车南站早上真的恐怖,地铁站人山人海,从地铁里面一直排队到门口,虽然人很多但是不得不说我国人民素质还是蛮高的,都是来了之后排在队伍的最后面,没有一个人去插队。这样不仅避免了人员拥挤的混乱,也让需要乘坐地铁的人可以尽快乘上地铁。
大猫的Java笔记
2020/09/30
7820
数据结构06 队列
上一篇讲了栈,这一篇要讲的是我们常用的队列,我会从以下几个方面进行总结。 1、什么是队列  2、队列的存储结构 3、队列的常用操作及实现代码 1、什么是队列  (1)首先,队列也是一种特殊的线性表,它是一种操作受限的线性表。只允许在表的一端进行元素插入,而在另一端进行元素删除。允许插入的一端称为队尾,允许删除的一端称为队头。 (2)队列与现实生活中的排队类似(如下图),新加入的成员总是在队尾,而排在队列最前面的总是最先离开队列,即先进先出 First In First Out (FIFO),因此队列就是先进
nnngu
2018/03/15
5530
数据结构06 队列
栈和队列
访问,插入,删除等操作只能在栈顶进行;对于队列,元素只能从队尾插入,从队头删除和访问。
Noneplus
2020/01/22
3770
Java队列实现
队列是一种常用的数据结构之一,与之前的栈类似,不过队列是“先进先出”。队列有队头(front)和队尾(rear),数据从队尾进入队列,从队头出队列,队头(front)指向队列的第一个数据,队尾(rear)指向队列中的最后一个数据。
全栈程序员站长
2022/09/14
6320
Java队列实现
队列的动态链式存储实现—C语言
头文件 ElemType.h /*** *ElemType.h - ElemType的定义 * ****/ #ifndef ELEMTYPE_H #define ELEMTYPE_H typedef int ElemType; int compare(ElemType x, ElemType y); void visit(ElemType e); #endif /* ELEMTYPE_H */  DynaLnkQueue.h /*** *DynaLnkQueue.h - 动态链式队列的定义 * *
WindCoder
2018/09/20
1.3K0
看看你对队列的了解有多少?
1.1队列概念及基本操作 队列(Queue) 简称队,它同堆栈一样,也是一种运算受限的线性表,其限制是仅允许在表的一端进行插入,而在表的另一端进行删除。在队列中把插入数据元素的一端称为队尾(Rear),删除数据元素的一端称为队头(Front )。向队尾插人元素称为进队或入队,新元素人队后成为新的队尾元素; 从队列中删除元素称为离队或出队,元素出队后,其后续元素成为新的队头元素。 由于队列的插入和删除操作分别在队尾和队头进行,每个元素必然按照进人的次序离队,也就是说先进队的元素必然先离队,所以称队列为先进先出
Java学习
2018/04/17
8170
看看你对队列的了解有多少?
数据结构C#版笔记--队列(Quene)
队列(Quene)的特征就是“先进先出”,队列把所有操作限制在"只能在线性结构的两端"进行,更具体一点:添加元素必须在线性表尾部进行,而删除元素只能在线性表头部进行。 先抽象接口IQuene<T> namespace 栈与队列 { public interface IQuene<T> { /// <summary> /// 取得队列实际元素的个数 /// </summary> /// <returns></returns>
菩提树下的杨过
2018/01/23
8310
数据结构C#版笔记--队列(Quene)
数据结构:队列的链式存储结构
本文介绍了链表队列在数据结构中的运用,包括链表队列的表示、基本操作以及在不同场景下的应用。链表队列是一种基于链表实现的队列,具有操作简便、可动态调整大小等特点,适用于缓存、消息队列等场景。
s1mba
2018/01/03
1.2K0
数据结构:队列的链式存储结构
PHP数据结构-队列的相关逻辑操
在逻辑结构中,我们已经学习了一个非常经典的结构类型:栈。今天,我们就来学习另外一个也是非常经典的逻辑结构类型:队列。相信不少同学已经使用过 redis 、 rabbitmq 之类的缓存队列工具。其实,数据库、程序代码,这些都可以实现队列的操作,就和栈一样,队列也是有其特定的规则,只要符合这个规则,它就叫做队列。
硬核项目经理
2021/04/22
4280
PHP数据结构-队列的相关逻辑操
【数据结构——栈与队列】环形队列的基本运算(头歌实践教学平台习题)【合集】
概念:在使用队列之前,需要先为队列分配内存空间并进行初始化设置,这包括确定队列的数据结构、存储方式以及相关指针(如果是链式队列)或索引(如果是顺序队列)的初始状态。
Rossy Yan
2024/12/24
1410
【数据结构——栈与队列】环形队列的基本运算(头歌实践教学平台习题)【合集】
重学数据结构(三、队列)
和上一篇的栈相反,队列(queue)是一种先进先出(First In First Out, FIFO)的线性表。
三分恶
2020/09/01
3790
重学数据结构(三、队列)
【Java数据结构学习笔记之三】Java数据结构与算法之队列(Queue)实现
  本篇是数据结构与算法的第三篇,本篇我们将来了解一下知识点: 队列的抽象数据类型 顺序队列的设计与实现 链式队列的设计与实现 队列应用的简单举例 优先队列的设置与实现双链表实现 队列的抽象数据类型   队列同样是一种特殊的线性表,其插入和删除的操作分别在表的两端进行,队列的特点就是先进先出(First In First Out)。我们把向队列中插入元素的过程称为入队(Enqueue),删除元素的过程称为出队(Dequeue)并把允许入队的一端称为队尾,允许出的的一端称为队头,没有任何元素的队列则称为空队。
Angel_Kitty
2018/04/09
1.3K0
【Java数据结构学习笔记之三】Java数据结构与算法之队列(Queue)实现
相关推荐
数据结构之链式队列的代码实现及有趣应用
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验