zoukankan      html  css  js  c++  java
  • java程序设计之循环链表

      照例来说点废话,愿自己生一颗温柔细腻的心,这样女朋友也许一个眼神,一个微笑,我就知道如何做,可惜内心与外表一样粗糙,这一生有幸认识她,愿天下有情人终成眷属。

      循环链表,顾名思义循环就好了,所以建一个线性表之后,在尾指针之后.next=first就好了,照例先建一个结构体(类似于C语言的结构体,java里面是类):

    class Person{
        protected Person next;
        protected int data;
        public Person(int data){
            this.data = data;
        }
        
        public void display(){
            System.out.println(data);
        }
    }
    /*
    *next是一个为经过引用的Person类,并未在堆上分配出内存(这里我不确定,代码猜测)
    */

      接着我们来写操作这个Person对象内存空间的链表类,类似于写一个链表的工具类:

      首先一定是先建立一个头指针,指向第一个节点:

    protected Person first;

      这个first类未经引用,当用对象引用这个first时,一定要注意对象的一致,底下加一个构造方法:

    public link(){
            this.first = null;
        }

      头结点创立好了,在对象引用这个工具类时,头结点就被定义了,所以下面写一个方法,用来创立循环链表:

    public void fun(){
            Scanner s = new Scanner(System.in);
            System.out.print("请输入链表长度,输入为纯数字:");
            int value = Integer.parseInt(s.nextLine());
            Person p = null;
            first = new Person(n--); //一定要是头结点第一个被建立,因为开始定义的就是first
            p = first;
            while(n-->0){
                p.next = new Person(n+1);
                p = p.next;
            }
            p.next = first;

      这个类的名字叫link,看构造方法,这个链表的工具类就完成了。

      下面写一段代码引用一下,代码很简单:

    public class Huan {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            link l = new link();
            l.fun();
            Person p = l.first;
            while(p!=null){
                p.display();
                p = p.next;
            }
        }
    }
  • 相关阅读:
    cmp函数
    代码6
    代码5
    Google Code Jam在线測试题目--Alien Language
    Android ListView 和 ScrollView 冲突问题
    IOS的一个关于球碰撞的小游戏
    运用smali自己主动注入技术分析android应用程序行为
    《Pro Android Graphics》读书笔记之第二节
    单播、多播(组播)和广播的差别
    Swift闭包(Closure)
  • 原文地址:https://www.cnblogs.com/xiangxi/p/4720920.html
Copyright © 2011-2022 走看看