[javascript] 원형 연결 리스트 (Circular Linked List) 데이터 구조
소개
원형 연결 리스트는 각 노드가 다음 노드를 가리키며 마지막 노드가 첫 번째 노드를 가리키는 자료 구조입니다. 이 포스트에서는 자바스크립트로 원형 연결 리스트를 구현하는 방법을 살펴보겠습니다.
구현
노드 정의
class Node {
constructor(data) {
this.data = data;
this.next = null;
}
}
원형 연결 리스트 구현
class CircularLinkedList {
constructor() {
this.head = null;
}
append(data) {
const newNode = new Node(data);
if (!this.head) {
this.head = newNode;
newNode.next = this.head;
} else {
let current = this.head;
while (current.next !== this.head) {
current = current.next;
}
current.next = newNode;
newNode.next = this.head;
}
}
display() {
let current = this.head;
do {
console.log(current.data);
current = current.next;
} while (current !== this.head);
}
}
사용 예제
const circularList = new CircularLinkedList();
circularList.append(1);
circularList.append(2);
circularList.append(3);
circularList.display();
마치며
이렇게 자바스크립트를 사용하여 원형 연결 리스트를 구현할 수 있습니다. 원형 연결 리스트는 특정 상황에서 유용하게 활용될 수 있는 자료 구조입니다.
참고 문헌:
-
GeeksforGeeks. “Circular Singly Linked List Set 1 (Introduction and Applications).” https://www.geeksforgeeks.org/circular-singly-linked-list-introduction-applications/. Accessed on 22 October 2021.