LinkedList란 무엇인가? LinkedList는 각 노드에서 단방향으로 포인터를 가진 단일 연결 리스트(Singly Linked List)와 양방향으로 포인터를 가진 양방향 연결 리스트(Doubly Linked List)로 나뉜다. 단일 연결 리스트 단일 연결 리스트(Singly Linked List)는 각 노드에서 다음 노드에 대한 참조를 가지고 있어 다음 노드로 이동할 수는 있지만 이전 노드로 이동할 수는 없는 리스트이다. 이 때문에 이전 노드와 다음 노드의 참조를 모두 가지는 Double Linked List에 비해 메모리 공간을 약간 덜 차지하는 장점이 있으며, 특정 노드 삭제를 위해 삭제할 노드의 이전 노드의 포인터를 다음 노드로 변경하면 되기 때문에 삭제가 매우 간단하다. 하지만 여러 단..
LinkedList
목표 리스트의 특징을 이해한다. 코틀린에서 리스트가 구현된 방식을 안다. 리스트(List) 리스트(List)란 하나의 변수에 여러 값을 저장하기 위해 불연속적인 메모리 공간을 차지하는 동적(Dynamic)인 자료구조이다. 개요 리스트는 여러 값을 저장하기 위해 메모리의 불연속적인 공간을 차지하고 있다. 불연속적인 공간을 차지하고 있으므로, 다음 값을 넣기 위해서는 비어있는 메모리 공간 어느 곳에나 변수를 넣으면 된다. 해당 주소값을 리스트에 추가 함으로써 리스트에 값 인스턴스의 추가가 완료된다. Kotlin에서 사용하는 List는 두가지 관점에서 나눌 수 있다. 하나는 가변성이고 다른 하나는 자료구조이다. 가변성은 변화 가능(Mutable)한지 아니면, 불가능한지(Immutable)에 대한 성질이며, K..