Java实现链表结构

举报
一条coding 发表于 2021/10/19 23:28:53 2021/10/19
1.7k+ 0 0
【摘要】 尾插法单项链表及遍历:import java.util.Random;public class mylinked { public static void main(String[] args) { mylinked mylinked=new mylinked(); mylinked.print(mylin...

      尾插法单项链表及遍历:
      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;
              }
          }
      }
  
 

文章来源: blog.csdn.net,作者:一条coding,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/skylibiao/article/details/81190377

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。