利用java实现一个简单的链表结构

定义:

所谓链表就是指在某节点存储数据的过程中还要有一个属性用来指向下一个链表节点,这样的数据存储方式叫做链表

链表优缺点:

优点:易于存储和删除

缺点:查询起来较麻烦

下面我们用java来实现如下链表结构:

首先定义节点类:

复制代码 package LinkTest; /**

  • 链表节点类
  • @author admin

/ public class Node { private int value;//存储数据 private Node next;//下一个节点 /* * 定义构造器 * @param vlaue * @param value */ public Node(int value){ this.value=value; } public int getValue() { return value; } public void setValue(int value) { this.value = value; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } } 复制代码

然后定义一个链表类:

  • 注意:遍历链表定义了两个方法,一个是普通方法,一个是递归方法,都可以遍历出来

复制代码 package LinkTest; /**

  • 链表
  • @author admin

*/ public class Link { private Node current; private Node root; public void insert(int vlaue){ Node newNode=new Node(vlaue); if(this.current==null){ this.current=newNode; this.root=this.current; }else{ this.current.setNext(newNode); this.current=this.current.getNext(); } } //普通遍历 public void getList(){ this.current=this.root; while(this.current!=null){ System.out.print(this.current.getValue()); this.current=this.current.getNext(); if(this.current!=null){ System.out.print("------->"); } } }

//递归遍历
public void getList2(){
    DG(this.root);
}

//递归方法
public void DG(Node node){
    System.out.print(node.getValue()+"----->");
    if(node.getNext()!=null){
        DG(node.getNext());
    }else{
        return;
    }
}
复制代码

} 复制代码

测试类:

复制代码 package LinkTest; /**

  • 测试类
  • @author admin

*/ public class Test { public static void main(String[] args){ Link l=new Link(); l.insert(1); l.insert(4); l.insert(5); l.insert(6); l.insert(9); l.insert(8); l.getList(); } } 复制代码 测试类运行结果:

1------->4------->5------->6------->9------->8

这样我们就用java实现了一个简单的链表结构。 欢迎工作一到五年的Java工程师朋友们加入Java群: 891219277 群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

转载于:https://juejin.im/post/5c36efcbf265da6144204044

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值