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;
        }
 
 
    }
 
}
相关文章
|
5天前
|
存储 算法 Java
史上最全的Java容器集合之基础数据结构(手撕链表)
史上最全的Java容器集合之基础数据结构(手撕链表)
30 0
|
29天前
|
存储 算法 Java
算法宝典1——Java版本(此系列持续更新,这篇文章有20道)(有题目的跳转链接)(此份宝典包含了链表、栈、队列、二叉树的算法题)(下)
算法宝典1——Java版本(此系列持续更新,这篇文章有20道)(有题目的跳转链接)(此份宝典包含了链表、栈、队列、二叉树的算法题)(下)
|
29天前
|
算法 Java 索引
算法宝典1——Java版本(此系列持续更新,这篇文章有20道)(有题目的跳转链接)(此份宝典包含了链表、栈、队列、二叉树的算法题)(上)
算法宝典1——Java版本(此系列持续更新,这篇文章有20道)(有题目的跳转链接)(此份宝典包含了链表、栈、队列、二叉树的算法题)
|
1月前
|
存储 安全 Java
【JavaSE专栏49】Java集合类LinkedList解析,链表和顺序表有什么不同?
【JavaSE专栏49】Java集合类LinkedList解析,链表和顺序表有什么不同?
|
1月前
|
算法 Java
链表的题Java(简单到难6道小题)
链表的题Java(简单到难6道小题)
|
1月前
|
存储 算法 Java
Java数据结构第二讲-数组/链表
Java数据结构第二讲-数组/链表
|
1月前
|
Java
《代码随想录》刷题笔记——链表篇【java实现】
《代码随想录》刷题笔记——链表篇【java实现】
48 0
|
2月前
|
存储 Java
图解Java数据结构之环形链表
图解Java数据结构之环形链表
|
2月前
|
Java 测试技术
【Java】剑指offer(23)链表中环的入口结点
【Java】剑指offer(23)链表中环的入口结点
|
2月前
|
Java
相关产品
云迁移中心
推荐文章
更多