循環リンク リストは、リンク リストと比較すると若干の違いがあります。循環リンク リストでは、最後のノードが最初のノードを指し、ノードの完全な円が完成します。言い換えれば、このリンクされたリストでは、最後の要素は null ではないとも言えます。このタイプのリンク リストでは、どのノードも開始点として機能できます。これは、どのノードから開始しても完全なリストを横断できることを意味します。最後のノードが最初のノードを指すため、循環リンク リストではエンキューおよびデキュー操作を非常に簡単に実行できます。この記事では、例を挙げて循環リンク リストを理解します。このトピックでは、Java の循環リンク リストについて学習します。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
Java の循環リンク リストの構文:
以下の構文:
public class Course{ float marksscored; Course comingup; public Course(float marksscored) { this.marksscored = marksscored; } }
public Course evaluated = null; public Course notevaluated = null;
public void continued(float marksscored){ Course newCourse = new Course(marksscored); if(evaluated == null) { evaluated = newCourse; notevaluated = newCourse; newCourse.comingup = evaluated; } else { notevaluated.comingup = newCourse; notevaluated = newCourse; notevaluated.comingup = evaluated; } }
public void show() { Course current = evaluated; if(evaluated == null) { System.out.println("Results are underevaluation"); } else { System.out.println("The Marks Scored are as follows: "); do{ System.out.print(" \n"+ current.marksscored); current = current.comingup; }while(current != evaluated); System.out.println(); } } public static void main(String[] args) { EDUCBA marks = new EDUCBA(); marks.continued(100); marks.continued(230); marks.continued(349); marks.continued(423); marks.show(); } }
前に読んだように、循環リンク リストは、最後のノードが最初のノードを指すノードのコレクションを持つリストにすぎません。以下の図はこれを説明しています。ここで、ノード 1 はヘッド ノード、ノード 4 は最後のノードです。したがって、ここでは、ノード 1 がノード 2 を指し、次にノード 2 がノード 3 を指し、ノード 3 がノード 4 を指し、最後にノード 4 がノード 1 を指すことがわかります。
Java での循環リンク リストの例を以下に示します。
以下の例では、文字列ベースの循環リストが表示されます。まず、ノード クラス Course を定義しました。次に、循環リンク リストを作成する別のクラスを定義し、このクラスが循環リンク リストに追加されて表示されます。
public class EDUCBA { public class Course{ float marksscored; Course comingup; public Course(float marksscored) { this.marksscored = marksscored; } } public void continued(float marksscored){ Course newCourse = new Course(marksscored); if(evaluated == null) { evaluated = newCourse; notevaluated = newCourse; newCourse.comingup = evaluated; } else { notevaluated.comingup = newCourse; notevaluated = newCourse; notevaluated.comingup = evaluated; } } public Course evaluated = null; public Course notevaluated = null; public void show() { Course current = evaluated; if(evaluated == null) { System.out.println("Results are underevaluation"); } else { System.out.println("The Marks Scored are as follows: "); do{ System.out.print(" \n"+ current.marksscored); current = current.comingup; }while(current != evaluated); System.out.println(); } } public static void main(String[] args) { EDUCBA marks = new EDUCBA(); marks.continued(100); marks.continued(230); marks.continued(349); marks.continued(423); marks.show(); } }
出力:
以下の例では、文字列ベースの循環リストが表示されます。まず、ノード クラス Coursename を定義しました。次に、循環リンク リストを作成する別のクラスを定義し、このクラスが循環リンク リストに追加されて表示されます。
public class EDUCBA { public class Coursename{ String name; Coursename comingup; public Coursename(String name) { this.name = name; } } public void continued(String name){ Coursename newCoursename = new Coursename(name); if(evaluated == null) { evaluated = newCoursename; notevaluated = newCoursename; newCoursename.comingup = evaluated; } else { notevaluated.comingup = newCoursename; notevaluated = newCoursename; notevaluated.comingup = evaluated; } } public Coursename evaluated = null; public Coursename notevaluated = null; public void show() { Coursename current = evaluated; if(evaluated == null) { System.out.println("No desired course found"); } else { System.out.println("The requested courses are as follow: "); do{ System.out.print(" \n"+ current.name); current = current.comingup; }while(current != evaluated); System.out.println(); } } public static void main(String[] args) { EDUCBA names = new EDUCBA(); names.continued("Course 1: Data Science"); names.continued("Course 2: Finance"); names.continued("Course 3: React Native"); names.continued("Course 4: React"); names.continued("Course 5: Excel"); names.continued("Course 6: Java"); names.continued("Course 7: Lua"); names.continued("Course 8: TypeScript"); names.continued("For more Information"); names.continued("Feel free to visit us on www.EDUCBA.com"); names.show(); } }
出力:
この記事に基づいて、Java の循環リンク リストの概念と、それがリンク リストとどのように異なるかを理解しました。循環リンク リストの仕組みとその実証例についても説明しました。この例は、初心者が循環リンク リストの概念を簡単に理解するのに役立ちます。
以上がJavaの循環リンクリストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。