照例來說點廢話,愿自己生一顆溫柔細膩的心,這樣女朋友也許一個眼神,一個微笑,我就知道如何做,可惜內心與外表一樣粗糙,這一生有幸認識她,愿天下有情人終成眷屬。
循環鏈表,顧名思義循環就好了,所以建一個線性表之后,在尾指針之后.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; } }}
|
新聞熱點
疑難解答