开发者社区> 一条coding> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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;
        }
 
 
    }
 
}

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

相关文章
考点:程序逻辑和调试,类似环形链表结构【Python习题03】
考点:程序逻辑和调试,类似环形链表结构【Python习题03】
0 0
基础结构-链表-合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
0 0
【带你了解C++标准库为何在八大链表结构中选择了它】双向循环带头链表的实质性操作
【带你了解C++标准库为何在八大链表结构中选择了它】双向循环带头链表的实质性操作
0 0
最最容易实现的链表结构——双向链表(数据结构C语言实现4)
最最容易实现的链表结构——双向链表(数据结构C语言实现4)
0 0
基于链表结构实现队列
在之前的文章《如何实现一个队列》中,我们使用数组结构、栈结构实现了队列,现在我们要寻找一种更优雅的方案来实现队列。
0 0
【数据结构】链表最强结构-带头双向循环链表(超详解)
本章将带你们走进带头双向循环链表的实现与讲解
0 0
2.链表结构、栈、队列、递归行为、哈希表和有序表
2.链表结构、栈、队列、递归行为、哈希表和有序表
0 0
JavaScript中链表的基础结构与增加节点的方法
JavaScript中链表的基础结构与增加节点的方法
0 0
12节视频课+源码解析创造链表结构 | Java开发者进阶站
最美丽的往往是神秘的未知,创造链表并逐一实现其增删改查的基本功能更能让你体会到这一点。不要担心没办法做到,在这里,你将一步步完成链表的创建,通过两则案例巩固所学,彻底掌握自定义数据结构的方法。
0 0
【Leetcode】拿捏链表(四)——160. 相交链表、141. 环形链表、142. 环形链表 II(二)
【Leetcode】拿捏链表(四)——160. 相交链表、141. 环形链表、142. 环形链表 II(二)
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
JAVA反射原理以及一些常见的应用
立即下载
Java 8 简明教程
立即下载
Java基础入门(四)-泛型、反射、注解
立即下载