[kotlin] 연결 리스트(Linked List)의 특징과 사용 예시
연결 리스트(Linked List)는 데이터 요소가 노드라 불리는 객체의 각 요소로 구성된 선형 데이터 구조입니다. 각 노드는 데이터 필드와 다음 노드를 가리키는 포인터(링크)로 구성되어 있습니다.
연결 리스트의 특징
- 동적 크기: 연결 리스트는 데이터 크기의 제한이 없어 데이터를 동적으로 추가하거나 삭제할 수 있습니다.
- 데이터 삽입 및 삭제: 특정 위치에 쉽게 노드를 삽입하거나 삭제할 수 있습니다.
- 메모리 효율성: 연결 리스트는 데이터를 저장할 때 메모리를 효율적으로 사용할 수 있습니다.
Kotlin에서 연결 리스트 사용하기
class Node(var data: Int) {
var next: Node? = null
}
class LinkedList {
private var head: Node? = null
fun append(data: Int) {
if (head == null) {
head = Node(data)
} else {
var current = head
while (current?.next != null) {
current = current.next
}
current?.next = Node(data)
}
}
fun display() {
var current = head
while (current != null) {
println(current.data)
current = current.next
}
}
}
fun main() {
val ll = LinkedList()
ll.append(1)
ll.append(2)
ll.append(3)
ll.display()
}
위의 Kotlin 코드는 연결 리스트를 구현하고 사용하는 예시입니다. Node
클래스는 데이터를 저장하고 다음 노드를 가리키는 링크를 포함하고, LinkedList
클래스는 노드를 추가하고 연결 리스트를 출력합니다.
연결 리스트는 데이터 삽입 및 삭제가 빈번하게 일어나는 경우나 크기가 동적으로 변하는 경우에 유용합니다.
참고 자료: GeeksforGeeks - Linked List