循环单链表的实现java

链表的基本概念以及java实现单链表-循环链表-双向链表 前言 线性结构是非常简单且常用的数据结构,而线性表则是一种非常典型的线性结构。 线性表定义 线性表的数据结构 链表 单链表 单链表的定义 单链表的插入和删除 单链表的遍历,清空,判空,获取指定结点 循环链表 循环链表的定义 循环链表的插入和删除 循环链表的遍历,清空 双向链表 双向链表的定义 双向链表的插入和删除 本节代码传送门,欢迎star:https://github... 阅读详情
循环链表(circle linked list)是另一种形式的链式存储结构 它的特点是表中最后一个节点的指针域指向头结点 整个链表形成一个环,由此,从表中任一点出发均可以找到表中其他节点
package linkList;

 

/*
 * 单向循环链表
 */


class Element {
	//当前元素值
	public Object value =null;
	//指向下一个元素的指针
	public  Element nextElement=null;
	//无参构造方法
	public Element()
	{
		
	}
	//有参构造方法
	public Element(Object value ,Element nextElement)
	{
		this.value  =value;
		this.nextElement=nextElement;
	}
}
public class CircleLinkedList {
	//初始状态下链表的头指针为空
	public Element header=null;
	/*
	 * 初始化链表
	 */
	void intList()
	{
		header =new Element();
		//header中不存储内容
		header.value =null;
		//头指针的下一个节点指向自己
		header.nextElement =header;
	}
	/*
	 * 插入链表
	 */
	public  void insertList(Object o)
	{
		Element element =new Element(o,header);
		//第一次插入元素
		if(header.nextElement==header)
		{
			header.nextElement=element;
			 
		 
		}//不是第一次插入元素
		else {
			Element temp  =header;
			 
			while (temp.nextElement!=header) {
				
				temp=temp.nextElement;
				
			}
			temp.nextElement=element;//新插入的最后一个节点指向第一个节点
			  
		}
		
	}
	//获取俩表的长度
	public int getLength() {
		int count=0;
		if(header==null||header.nextElement==header)
		{
			return 0;
		}else {
			 while(header.nextElement!=header)
			 {
				 count++;
			 }
			 return count;
		}
	}
	/*
	 * 删除链表中指定元素
	 */
	public void deletIndexI(Object o) {
		Element element =new Element();
		element =header;
		  while (element.nextElement!=header) {
		
			   if(element.nextElement.value.equals(o))
			   {
				   element.nextElement =element.nextElement.nextElement;
			   }else {
				element =element.nextElement;
			} 
			
		}
			
			
		 
	}
	/*
	 * 获取第i位置上元素
	 */
    public Object getIndexI(int i)
    {
    	
    	Element temp =header;
    	int count=0;
    	while (temp.nextElement!=header) {
		    count++;
		    if(count==i)
		    {
		    	 return temp.nextElement.value; 
		    }
		    temp =temp.nextElement;
			
		}
    	return null; 
    }
    /*
     * 判断链表中是否存在某个元素
     */
    public boolean isExit(Object o)
    { 
    	Element element =header;
    	while (element.nextElement!=header) 
    	{
    		  element =element.nextElement;
    		  System.out.println(element.value);
			  if(element.value.equals(o))
			  {
				  return true;
			  }
		}
    	return false;
    }
    /*
     * 打印整个链表中数据
     */
    public void prinList()
    {
    	Element element =header.nextElement;
    	while (element.nextElement!=header) {
			System.out.print(element.value+" ");
			element=element.nextElement;
			
			
		}
    	 System.out.print(element.value+" ");
    	System.out.println();
    }
	//测试数据
	public static void main(String[] args) {
		CircleLinkedList list =new CircleLinkedList();
		list.intList();
		for (int i = 0; i < 11; i++) {
			list.insertList(i);
		}
		list.prinList();
		System.out.println("是否存在:"+list.isExit( new Integer(5)));
		System.out.println("获取i位置上元素:"+list.getIndexI(12));
		//删除指定元素
		list.deletIndexI(8);
		list.prinList();
	}

}

Java实现线程安全循环单链表的实战指南 在Java中实现循环单链表的节点类,首先需要定义节点类的基本结构,这包括成员变量的定义。每个节点通常包含两个关键成员:一个是节点的数据域,另一个是指向下一个节点的引用。对于循环单链表来说,还应该有一个指向链表头部的引用,以保持整个链表的循环连接特性。// 数据域,存储节点的数据// 下一个节点的引用// 指向链表头部的引用,用于保持循环特性// 构造方法、获取和设置数据、获取和设置链表操作等方法将在这里定义在循环链表的逻辑结构中,每个节点包含两个部分:数据和指向下一个节点的指针。 阅读详情

相关推荐

循环链表的经典实现(JAVA)

NULL 博文链接:https://128kj.iteye.com/blog/1744646

数据结构:Java实现循环单链表(超详细)

java实现循环链表 实现一个循环链表(单链表),具备增加元素、删除元素、打印循环链表等功能。 一丶单向循环链表 就是为尾节点指向头结点 二丶单向循环链表的接口设计 比较单向链表,单向循环链表只需要修改添加节点,删除节点两个方法,也就是add和remove方法 三丶单向循环链表的实现 3.1添加节点 相比于单向链表,单向循环链表只需要特别关注插入头结点的情况即可 需要考虑的特殊情况是当链表的长度为0的时候的插入的情况 创建节点类 package LoopTable;...

qq_51066068的博客 7806

JAVA实现一个线程安全的循环单链表

NULL 博文链接:https://liuxianwei.iteye.com/blog/2390291

Java实现单循环链表的基本操作

1、定义单循环链表结点类;2、定义单循环链表类,并实现使用tail指向尾结点的单循环链表(有头结点)的创建、插入、删除、取元素操作和将单链表中的最小元素移到最前面的操作,以及迭代器;3、从键盘上依次输入21、75、30、18、42、56,创建单循环链表,并输出单循环链表中的各元素值;5、分别在单链表的第3个位置和第9个位置插入67和10,给出插入成功或失败的信息,并输出单循环链表中的各元素值;6、删除单循环链表中的第4个数据元素和第8个数据元素,给出删除成功或失败的信息,并输出单循环链表中的各元素值;7、

m0_53676388的博客 1212

ArcGIS插值可视化气象数据

前言 地图底图的制作和气象数据的预处理见我上两篇博客 ArcGIS精美中国地图制作(详解) python处理日值气象数据 在前面我们已经将日值的地温数据处理成了年均地温,添加了站点经纬度坐标并导出为excel格式。 得到如下数据: 导入数据 在Arcmap中 文件-添加XY数据 将年均地温和站点位置数据导入。 注意:excel表格的格式要另存为97-2003工作簿形式,否则会有"arcgi...

江北20190411的博客 2万+

逆向分析美团外卖mtgsig3.0签名算法:从抓包到算法还原实战

在移动应用开发与安全领域,API接口签名是保障数据传输完整性与身份验证的核心机制。其基本原理是通过特定的算法,将请求参数、时间戳等数据与密钥结合,生成唯一的签名串,服务器通过验证签名来识别请求的合法性。这项技术的核心价值在于防止数据篡改、重放攻击和未授权访问,是构建安全客户端-服务器通信的基石。在实际应用中,签名算法广泛应用于电商、社交、金融等各类App的接口保护场景。本文以美团外卖App的mtgsig3.0签名为具体案例,详细拆解了其生成逻辑。通过结合Frida动态调试与Jadx静态分析,文章深入探讨了如

weixin_29325515的博客 1237

链表循环(Circular Linked List)具体实现(Java)

链表循环(Circular Linked List)具体实现

weixin_45428910的博客 704

东方马达步进电机AZM66AK-HS100+AZD-KD调试经验记录

东方马达步进电机AZM66AK-HS100+AZD-KD调试经验记录(20170803YC) 本次总结主要实现的功能如下:用MEXE02软件在步进电机驱动器中设置好控制动作,每个控制动作有一个特定的编号。之后通过PC和驱动器之间的485通讯,发送相关指令,使步进电机按照一定编号的控制动作运转。 参考资料:东方马达步进电机AZM66AK-HS100+AZD-KD的产品手册,可在官网下载。 A....

dahailuoa6的博客 1万+

数据结构--链表(3):循环链表

循环链表是一种特殊的链表结构,其中尾节点指向头节点,形成一个闭环。在这种链表中,任何节点都可以是头节点或尾节点。Python实现循环列表。Java实现循环列表。

m0_53433492的博客 271

IC验证 AHB-RAM 项目(二)——接口与事务代码的编写

本文介绍了准备工作及接口、事务相关代码编写要点。在接口部分,重点说明了lvc_ahb_if.sv、rkv_ahbram_if.sv和rkv_ahbram_tb.sv三个关键文件的功能,其中rkv_ahbram_if.sv通过动态任务实现复位信号控制。事务部分则涉及lvc_ahb_types.sv中的枚举类型定义和lvc_ahb_transaction.sv中的随机化变量设置,用于构建AHB传输激励。整个验证环境采用模块化设计,通过接口实现TB与DUT的通信,为后续验证工作奠定基础。

weixin_45926435的博客 405

ESP32 DMX512与RDM协议栈开发指南

DMX512-A是专业灯光控制领域广泛采用的串行通信标准,基于RS-485物理层实现确定性单向数据传输;RDM(Remote Device Management)则在其基础上扩展双向、可寻址、可配置的智能管理能力,满足现代舞台设备远程固件升级、自动发现与参数配置需求。二者共用同一总线但时序与帧结构严格隔离,对硬件定时精度、中断响应延迟及电气隔离提出极高要求。在嵌入式实践中,ESP32凭借Wi-Fi/蓝牙连接能力与丰富外设资源,成为构建低成本智能DMX节点的理想平台。esp_dmx协议栈正是面向该场景的高性能

weixin_34945060的博客 316

Java中的循环链表

与链表相比,循环链表略有不同。在循环链表中,最后一个节点指向第一个节点,从而完成一整圈节点。换句话说,我们也可以说在这个链表中,最后一个元素不是空的。在这种类型的链表中,任何节点都可以作为起点。这意味着可以遍历整个列表,即使我们从任何节点开始。当最后一个节点指向第一个节点时,在循环链表中执行排队和出列操作非常容易。在本文中,我们将通过示例了解循环链表。 Java中循环链表的语法: 以下是语法: 节点类定义语法- public class Course{ float marksscored; Cou

m0_66491772的博客 1934

2026年紫光同创数字IC笔试试卷带答案

FPGA基础知识与设计要点摘要 本文围绕FPGA与数字IC设计核心概念,通过单选题、波形分析题、多选题和简答题形式,系统梳理了以下关键知识点: FPGA基础架构 查找表(LUT)是实现组合逻辑的基本单元(题1) CLB包含LUT、触发器和进位链,后者加速算术运算(题6,10) 布局布线优化是减少关键路径延迟的核心方法(题7) 时序分析要点 建立时间(时钟沿前数据需稳定)与保持时间(时钟沿后需保持)的定义(题2,简答1) 亚稳态成因及两级同步器处理跨时钟域信号的方法(多选题1,波形题5) 特殊设计技术 异步复

Open 114

java实现循环单链表

前面已经介绍了java实现单链表 对于循环链表而言,关键要素是指定链表的头节点head、尾节点tail以及链表大小size;该数据结构支持在头部增加节点、在尾部增加节点,从头部删除节点及从尾部删除节点等。 其实两者的主要差别就在于如何判断是否到了链表的结尾: 在单链表中 while(temp.next!=null) { temp=temp.next; } 在循环链表中 while(tem...

m0_37941483的博客 4006

用 SELECT FOR UPDATE 亲手制造典型数据库死锁——从 ABAP 视角揭秘 RDBMS 的锁争夺战

在日常 ABAP 开发中,多数人只在 ST22 里偶尔瞥见这行 dump,却对背后的原理知之甚少。本文借助社区前辈的经典实验,还原一个可复现的死锁现场,进一步讨论产生根因、检测手段与规避策略,并用真实业务案例串联起数据库、Open SQL 与 SAP NetWeaver 锁管理之间的逻辑链条。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 454

YOLOv13改进:注意力机制 | 动态稀疏注意力的双层路由方法BiLevelRoutingAttention | CVPR2023

BiLevelRoutingAttention方法对小目标检测效果比较好。可能是因为BRA模块是基于稀疏采样而不是下采样,一来可以保留细粒度的细节信息,二来同样可以达到节省计算量的目的。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1435

Java实现循环单链表……

相比于C和C++,Java中没有了“结构”,因此就要使用类来描述“结构”,同样的,在实现链表时,就可以使用类来定义节点,然后进行相应的操作,以下是我实现循环单链表的代码,循环单链表和单链表的区别在于最后一个节点的判断,整体不难……

iNiegang的博客 5646

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Java实现循环单链表

1.不带头结点的循环单链表** ` import LinkList.LinkList.Node; class LinkList { // 定义链表类 class Node { // 定义结点类 public int data; public Node next; public Node() { next = null;

weixin_40782030的博客 642

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java 循环单链表_java实现循环单链表

java中只能用类实现数据结构的功能class cnode{//循环单链表private Object data;//定义数据域private cnode nextcnode;private cnode head=null;public Object getData() {return data;}public void setData(Object data) {this.data = data...

weixin_32404293的博客 383

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java单链表的循环实现_java实现单向循环链表

链表图解带头结点的链表:不带头结点的链表:区别带头结点的链表容易代码实现不带头结点的容易实现循环链表和双向链表代码的实现 (增减 删除)节点实现:public class node{private int no;public node next;public node(int no) {this.no = no;}public int getNo() {return no;}@Overridep...

weixin_28920737的博客 274

循环单链表-数据结构-java实现

循环单链表-数据结构-java实现 目录 抽象表:1 循环单链表实现:1 循环单链表输出测试:4 输出结果:5 抽象表: package edu.cquptzx.List; publicinterface List { publicvoid insert(int i ,Object obj) throws Exception; //插入 ...

weixin_30768661的博客 103

java 实现带头节点的循环单链表

学一学循环链表 描述 将单链表的尾端节点指针域的指向由null指向首节点即可 结构图 空链表 非空链表 循环截至条件 节点的指针域是否指向首节点 JAVA代码实现 package com.example.demo.data; import java.util.Objects; /** * @author tm * @date 2021-06-25 14:49 * @description java 实现带头节点的循环单链表 */ public class CycleSingleLinkL

qq_37669900的博客 323

数据结构学习----线性表的链式表示之循环单链表(Java实现)

线性表接口LList: package com.clarck.datastructure.linked; /** * 线性表接口LList,描述线性表抽象数据类型,泛型参数T表示数据元素的数据类型 * * @author clarck * */ public interface LList { /** * 判断线性表是否空 * @return

雪夜&流星的专栏 896

循环单链表-JAVA语言实现

定义循环单链表类,用来实现循环单链表 public class CycleNode { //节点内容 int data; //在循环链表中,只有一个节点的循环链表的下一个节点指向其自身 CycleNode next = this; //构造函数 public CycleNode(int data) { this.data = data; } //获取下一个节点...

Lau's Blog 884
上一篇: Adnroid中的事件分发机制
下一篇: Android之可折叠Toolbar的实现
夕夕如盼
博客等级 码龄12年 28粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值