순환 연결 목록은 연결 목록과 약간의 차이가 있습니다. 순환 연결 리스트에서는 마지막 노드가 첫 번째 노드를 가리키며, 이는 노드의 완전한 원을 완성합니다. 즉, 이 연결된 목록에서 마지막 요소는 null이 아니라고 말할 수도 있습니다. 이러한 유형의 연결 목록에서는 모든 노드가 시작점 역할을 할 수 있습니다. 이는 임의의 노드에서 시작하더라도 전체 목록을 탐색할 수 있음을 의미합니다. Enqueue 및 Dequeue 작업은 마지막 노드가 첫 번째 노드를 가리키기 때문에 순환 연결 목록에서 수행하기가 매우 쉽습니다. 이번 글에서는 예제를 통해 순환 연결 리스트(Circular Linked List)를 이해해보겠습니다. 이번 주제에서는 자바의 순환 연결 리스트(Circular Linked List)에 대해 알아보겠습니다.
무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
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(); } }
출력:
이 글을 바탕으로 자바에서 순환 연결 리스트의 개념과 연결 리스트와의 차이점을 이해했습니다. 우리는 순환 연결 목록의 작업과 시연된 예제도 살펴보았습니다. 예제는 초보자가 순환 연결 목록의 개념을 매우 쉽게 이해하는 데 도움이 될 것입니다.
위 내용은 자바의 순환 연결리스트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!