Java实现链表结构-阿里云开发者社区

开发者社区> 一条coding> 正文

Java实现链表结构

简介: Java实现链表结构
+关注继续查看
尾插法单项链表及遍历:
import java.util.Random;
public class mylinked {
    public static void main(String[] args) {
        mylinked mylinked=new mylinked();
      mylinked.print(mylinked.creat(6));
    }
 
 //        分别存储下一个节点地址和数据
    public mylinked next;
    public int data;
    public mylinked header,tailer,newcode;
    public  mylinked creat (int len) {
        Random random=new Random();
//        定义头尾和新节点,且初值为空
        mylinked header,tailer,newcode;
        header=tailer=newcode=null;
        for (int i = 0; i <len; i++) {
//            初始化新节点
            newcode=new mylinked();
//            赋值
            newcode.data=random.nextInt(100);
            if(header==null){
                header=tailer=newcode;
            }else{
                tailer.next=newcode;
                tailer=newcode;
            }
 
        }
    return header;
    }
 
    public void print(mylinked header){
        while(header!=null){
            System.out.println(header.data);
            header=header.next;
        }
 
 
    }
 
}

?头插法单向链表结构:


import java.util.Random;

public class mylink {


? ?//创建链表类

? ?class MLink {

? ? ? ?//当Mlink实例化后形成一个链表的节点对象

? ? ? ?//节点对象中的属性

? ? ? ?//节点存储的属性

? ? ? ?private int data;

? ? ? ?//存储下一个链表节点地址的属性

? ? ? ?private MLink next;

? ? ? ?/**

? ? ? ? * 功能:创建一个链表,并返回头节点的地址

? ? ? ? *

? ? ? ? * @param len 创建链表数据的长度

? ? ? ? * @return 返回头节点的地址

? ? ? ? */

? ? ? ?public MLink create(int len) {

? ? ? ? ? ?MLink header = null;

? ? ? ? ? ?//创建随机对象

? ? ? ? ? ?Random ra = new Random();

? ? ? ? ? ?//生成指定长度的随机数

? ? ? ? ? ?for (int i = 0; i < len; i++) {

? ? ? ? ? ? ? ?//创建随机数

? ? ? ? ? ? ? ?int num = ra.nextInt(100);

? ? ? ? ? ? ? ?//创建一个节点对象

? ? ? ? ? ? ? ?MLink temp = new MLink();

? ? ? ? ? ? ? ?//存储数据

? ? ? ? ? ? ? ?temp.data = num;

? ? ? ? ? ? ? ?//是否第一次创建链表节点

? ? ? ? ? ? ? ?if (header == null)

? ? ? ? ? ? ? ? ? ?header = temp;

? ? ? ? ? ? ? ?else {

? ? ? ? ? ? ? ? ? ?temp.next = header;

? ? ? ? ? ? ? ? ? ?header = temp;

? ? ? ? ? ? ? ?}

? ? ? ? ? ?}

? ? ? ? ? ?return header;

? ? ? ?}

? ?}

}

双向链表及遍历:

public class mylinked {
    public static void main(String[] args) {
        mylinked mylinked=new mylinked();
        mylinked.print(mylinked.creat(6));
    }
 
//        分别存储下一个节点地址和数据
    public mylinked next;
    private mylinked last;
    public int data;
    public mylinked header,tailer,newcode;
    public  mylinked creat (int len) {
        Random random=new Random();
//        定义头尾和新节点,且初值为空
        mylinked header,tailer,newcode;
        header=tailer=newcode=null;
        for (int i = 0; i <len; i++) {
//            初始化新节点
            newcode=new mylinked();
//            赋值
            newcode.data=random.nextInt(100);
            if(header==null){
                header=tailer=newcode;
            }else{
//                新节点的上一个等于尾节点,尾节点的下一个值等于新节点
                newcode.last=tailer;
                tailer.next=newcode;
                tailer=newcode;
            }
        }
    return header;
    }
    public void print(mylinked header){
        while(header!=null){
            System.out.println(header.data);
            header=header.next;
        }
 
 
    }
 
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Elasticsearch-doc基本操作
document是es中比较重要的一个概念,相当于数据库中的行数据,es可以对document进行操作,主要包括新增doc、删除doc、更新doc、更新doc的某个部分等。
12 0
使用注解开发| 学习笔记
快速学习 使用注解开发
16 0
案例_点菜| 学习笔记
快速学习案例_点菜
13 0
为什么 MySQL 不推荐默认值为 null ?
通常能听到的答案是使用了NULL值的列将会使索引失效,但是如果实际测试过一下,你就知道IS NULL会使用索引,所以上述说法有漏洞。
7 0
这样统计代码执行耗时,才足够优雅!
代码耗时统计在日常开发中算是一个十分常见的需求,特别是在需要找出代码性能瓶颈时。 可能也是受限于 Java 的语言特性,总觉得代码写起来不够优雅,大量的耗时统计代码,干扰了业务逻辑。特别是开发功能的时候,有个感受就是刚刚开发完代码很清爽优雅,结果加了一大堆辅助代码后,整个代码就变得臃肿了,自己看着都挺难受。因此总想着能不能把这块写的更优雅一点,今天本文就尝试探讨下“代码耗时统计”这一块。
6 0
Slf4j 包老冲突,每次排查半天,是什么原因?怎么解决?
一、前言 在进行 Java 开发时,通常我们会选择 Slf4j 作为日志门面,但日志实现却不尽相同。如果系统运行中同时存在多个日志实现,就会出现类似下图的 Warning。
5 0
Google 开源的依赖注入库,比 Spring 更小更快!
Guice是Google开源的一个依赖注入类库,相比于Spring IoC来说更小更快。Elasticsearch大量使用了Guice,本文简单的介绍下Guice的基本概念和使用方式。
9 0
首长,Redis 性能优化十三条军规立好了,请过目~
Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻谨记优化铁则,才能使得Redis性能发挥到极致。 本文将会介绍十三条性能优化军规,开发过程中只要按照执行,性能必能质的飞跃。
4 0
听说 Spring AOP 有坑?那就来踩一踩
前言 前几日,有朋友分享了这样一个案例: 原来的项目一直都正常运行,突然
3 0
+关注
121
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载
http://www.vxiaotou.com