Java 迴圈鍊錶

2021-09-01 15:28:40 字數 1463 閱讀 8847

迴圈鍊錶是與單鏈表一樣,是一種鏈式的儲存結構,所不同的是,迴圈鍊錶的最後乙個結點的指標是指向該迴圈鍊錶的第乙個結點或者表頭結點,從而構成乙個環形的鏈。

迴圈鍊錶的運算與單鏈表的運算基本一致。所不同的有以下幾點:

1、在建立乙個迴圈鍊錶時,必須使其最後乙個結點的指標指向表頭結點,而不是象單鏈表那樣置為null。此種情況還使用於在最後乙個結點後插入乙個新的結點。

2、在判斷是否到表尾時,是判斷該結點鏈域的值是否是表頭結點,當鏈域值等於表頭指標時,說明已到表尾。而非象單鏈表那樣判斷鏈域值是否為null。

**:public class circularlinkedlist< e>

public void insertatprior(e item)

public void add(e item) else

tmp.setnext(node);

}length++;

}public e get(int index) else if(isempty())else

e e = tmp.getdata();

return e; }}

public void insert(int index, e item) else if (0 == length && 1 == index) else

node.setnext(tmp.getnext());

tmp.setnext(node);

length++;}}

public void removefromfront() else if (1 == length) else

}public void remove(int index) else if (1 == length && 1 == index) else

tmp.setnext(tmp.getnext().getnext());

length--;}}

public void removefromlast() else if (1 == length) else

tmp1.setnext(head);

length--;}}

public int getlength()

public boolean isempty()

public void display() else }}

//test the list

public static void main(string args)

}public class node< e>

public node(e data, node< e> nextnode)

public void setdata(e data)

public void setnext(node< e> next)

public e getdata()

public node< e> getnext()

}

雙向迴圈鍊錶 java實現

雙向迴圈煉表示意圖 雙向迴圈鍊錶實現 public class doublelink private int size 鍊錶長度 public nodehead 頭節點 constructor public doublelink 獲取鍊錶的長度 return public int size 判斷鍊錶...

Java迴圈鍊錶實現約瑟夫環

問題描述 約瑟夫環運作如下 1 一群人圍在一起坐成 2 環狀 如 n 2 從某個編號開始報數 如 k 3 數到某個數 如 m 的時候,此人出列,下乙個人重新報數 4 一直迴圈,直到所有人出列 3 約瑟夫環結束 使用迴圈鍊錶實現約瑟夫環是一種解法,但是效率不高。public class yuesefu...

Java 資料結構 迴圈鍊錶

單向鍊錶 迴圈鍊錶 package linklist 迴圈鍊錶 created by sheldon on 2019 4 2.project name alstudy.package name linklist.迴圈鍊錶資料結構 class node public class linklistloo...