Data Structure : Linked list 소개

이제 갓~! data structure 을 배우기 시작한 초짜로써 어제 공부해 본 linked list 자료구조를 한번 정리해 보기로 한다.

간단하게 말하자면, linked list 란 각 데이터를 순서를 알 수 있게 연결해서 정렬해 놓았다는 뜻이다. linked list의 각 데이터(보통 node라고 한다) 를 일단 javascript의 대표적인 데이터 타입인 Object 로 표현해 본다면, 각 Object에는 그 뒤의 순서에 무엇이 있는지 알 수 있게 저장해 놓아야 하기 때문에 next라는 key값을 설정하고 그 value 값으로 다음번 순서의 Object 를 가리키게 하면 된다. 즉 각 Object의 기본형을 코드로 표현하자면

var obj ={ key : next_obj };

가 되겠다.

Linked list로 각 node 를 저장하기 위해서는 하나씩 추가할때마다 이전에 저장되었던 값과 추가하는 값의 연관관계를 설정하기만 하면 되므로, 배열을 하기 전에 미리 메모리를 할당해 두어야 한다든지 하는 낭비가 없는것이 장점이다. 또한 리스트의 앞이나 중간값을 빼내야 한다거나 할 경우, 빼낸 값의 후순위 값 모두를 다시 재 배열해야 하는 번거로움이 없이, 빼낸 값의 앞 node 의 next 에 뒷 순서의 node 를 value로 저장하면 된다.

자바스크립트 언어에 이미 기본으로 부여되어 있는 Array는 새로운 데이터를 Array형태로 저장하려고 할 경우 미리 메모리를 할당할 필요가 없이 자동으로 공간이 확보되며, 각종 method가 잘 구비되어 있어 별다른 고민 없이 Array의 중간 값이나 앞의 값을 활용할 수 있어, 이런 linked list 를 굳이 구현해 내야 할 필요성은 별로 와닿지 않지만, 조금이나마 빠르고 편리한 데이터 자료의 저장이나 검색을 위한 탐색의 일환으로 좀더 많은 Data Structure 의 Algorithm 를 접해보고 싶다.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.