>  기사  >  Java  >  자바의 순환 연결리스트

자바의 순환 연결리스트

WBOY
WBOY원래의
2024-08-30 15:10:16701검색

순환 연결 목록은 연결 목록과 약간의 차이가 있습니다. 순환 연결 리스트에서는 마지막 노드가 첫 번째 노드를 가리키며, 이는 노드의 완전한 원을 완성합니다. 즉, 이 연결된 목록에서 마지막 요소는 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();
}
}

Java의 순환 연결 목록 작업

앞에서 읽었듯이 순환 연결 리스트는 마지막 노드가 첫 번째 노드를 가리키는 노드 모음을 포함하는 리스트일 뿐입니다. 아래 다이어그램은 이를 설명합니다. 여기서 노드 1은 헤드 노드이고 노드 4는 마지막 노드입니다. 따라서 여기서는 노드 1이 노드 2를 가리키고, 노드 2가 노드 3을 가리키고, 노드 3이 노드 4를 가리키고, 마지막에 노드 4가 다시 노드 1을 가리킨다는 것을 알 수 있습니다.

자바의 순환 연결리스트

  • 먼저 특정 목록의 노드가 될 노드 클래스를 정의해야 합니다. 여기에는 두 개의 속성 데이터가 있고 다음 노드는 다가오는 노드를 가리킬 것입니다.
  • 또 다른 클래스를 정의해야 합니다. 이 클래스는 한 노드가 헤드이고 다른 노드가 테일이 되는 두 개의 노드가 있는 순환 연결 목록을 생성합니다. 여기에는 add()와 display()라는 두 가지 메소드가 있습니다.
  • add() 메소드는 노드를 목록에 추가합니다. 먼저 이 메서드는 헤드가 null인지 확인한 다음 노드를 헤드로 삽입합니다.
  • 이제 머리와 꼬리가 모두 새로 추가된 노드를 향하게 됩니다.
  • 머리가 null이 아닌 경우 새 노드는 새 꼬리 역할을 하며 이 목록은 원형 연결 목록이므로 꼬리는 머리를 향하게 됩니다.

Java의 순환 연결 리스트 예시

아래는 Java의 순환 연결 목록의 예입니다.

예시 #1

아래 예시에서는 문자열 기반 순환 목록이 표시됩니다. 먼저 노드 클래스 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();
}
}

출력:

자바의 순환 연결리스트

예시 #2

아래 예시에서는 문자열 기반 순환 목록이 표시됩니다. 먼저 노드 클래스 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:자바 비동기 대기다음 기사:자바 비동기 대기