歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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

Copyright © Linux教程網 All Rights Reserved