热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

基本结构:classListNode{类名:Java类就是一种自定义的数据结构intval;数据:节点数据


链表是一种数据结构:由数据和指针构成,链表的指针指向下一个节点


java ListNode链表是用java自定义实现的链表结构。


基本结构:


class ListNode { //类名: Java类是定制的数据结构int val; //数据:节点数据ListNode next; //对象:引用以下节点对象: Java没有指针概念,Java引用与c语言指针相似}添加构造方法可以简化初始化。


class ListNode { //类名: Java类是定制的数据结构int val; //数据:节点数据ListNode next; //对象:引用以下节点对象: Java没有指针的概念。 Java引用和c语言指针类似于ListNode () listnode(intval ) /构造方法。 构造方法和类名相同的this.val=val; //将收到的参数转换为当前类的val变量}listnode(intval,ListNode next ) { this.val=val; //将收到的参数代入当前类的val变量this.next=next将收到的参数分配给当前类的next变量}


类型表示法:使用类型时与不同的数据类型:兼容


class ListNodeE{ //类名: Java类是自定义数据结构的E val。 //数据:节点数据ListNodeE next; listnode(eval )//生成方法:生成方法和类名相同的this.val=val; //将收到的参数代入当前类的val变量中}用例:


公共类列表节点{ int val; ListNode next; listnode(listnode ) intval ) { this.val=val; }listnode(intval,ListNode next ) { this.val=val; this.next=next; }//打印输出方法staticvoidprint (listnodelistnoed ) while ) listnoed!=null(system.out.println (节点: ) listnoed.val ); listNoed=listNoed.next; } } @Test public void test1 () listnodenodesta=newlistnode(0); //创建第一个节点ListNode nextNode; //在移动过程中声明指向当前节点的变量的nextNode=nodeSta; //创建指向起始节点的//链表for (inti=1; i 10; I )列表节点=新列表节点(I; //生成新节点nextNode.next=node连接新节点的nextNode=nextNode.next; //将当前节点向后移动,即,next后对象下的next为null}//for循环完成后,nextNode指向最后一个节点nextNode=nodeSta; //重新赋值以指向第一个节点的打印(下一个节点); //打印输出//替换节点while (下一个节点!=null(if ) nextnode.val==4) listnode new node=new listnode (99 ); //生成新节点new node.next=next node.next.next; //保存要替换的节点的下一个节点,然后在新节点的下一个节点nextNode.next=newnode; //新节点的下一个节点指向以前保存的节点} nextNode=nextNode.next; //循环完成后,下一个节点指向最后一个节点nextNode=nodeSta; //重新赋值以指向第一个节点的打印(下一个节点); //打印输出//插入节点while (下一个节点!=null(if ) nextnode.val==5) listnode new node=new listnode (99 ); //生成新节点ListNode node=nextNode.next首先保存下一个节点newnode.next=node新节点的下一个节点是以前保存的节点next node.next=//插入新节点} nextNode=nextNode.next; //循环完成后,下一个节点指向最后一个节点nextNode=nodeSta; //重新赋值以指向第一个节点的打印(下一个节点); //打印输出}创建链表时的调试:如下所示


推荐阅读
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • OO第一单元自白:简单多项式导函数的设计与bug分析
    本文介绍了作者在学习OO的第一次作业中所遇到的问题及其解决方案。作者通过建立Multinomial和Monomial两个类来实现多项式和单项式,并通过append方法将单项式组合为多项式,并在此过程中合并同类项。作者还介绍了单项式和多项式的求导方法,并解释了如何利用正则表达式提取各个单项式并进行求导。同时,作者还对自己在输入合法性判断上的不足进行了bug分析,指出了自己在处理指数情况时出现的问题,并总结了被hack的原因。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 这篇文章主要介绍了Python拼接字符串的七种方式,包括使用%、format()、join()、f-string等方法。每种方法都有其特点和限制,通过本文的介绍可以帮助读者更好地理解和运用字符串拼接的技巧。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文介绍了使用Python解析C语言结构体的方法,包括定义基本类型和结构体类型的字典,并提供了一个示例代码,展示了如何解析C语言结构体。 ... [详细]
  • 本文介绍了GTK+中的GObject对象系统,该系统是基于GLib和C语言完成的面向对象的框架,提供了灵活、可扩展且易于映射到其他语言的特性。其中最重要的是GType,它是GLib运行时类型认证和管理系统的基础,通过注册和管理基本数据类型、用户定义对象和界面类型来实现对象的继承。文章详细解释了GObject系统中对象的三个部分:唯一的ID标识、类结构和实例结构。 ... [详细]
author-avatar
DomeSmart
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有