본문 바로가기
Coding/Javascript

Javascript - Linked list(데이터 구조)(2)

by z쿳쿳z 2020. 6. 13.
728x90
반응형

이번 포스트는 데이터 구조 중에 liked list다. lisked list는 배열에 데이터를 저장하는 것과 유사하나 다소 다른점이 많다.

Linked list를 도식화를 하면 다음과 같다.

 - linked list(연결리스트)는 값과 그다음 값을 가르키는 pointer로 구성 되어 있다.

 - 숫자 1, 2, 3 이 있는 위치를 node라고 표현하고, 파란색으로 표현된 곳을 pointer라고 표현한다.

 - pointer는 다음 node의 값을 가르키고 있어야한다. 만약 다음 값이 없다면, null을 가지게 된다.

 

만약 숫자 4를 1과 2사이에 추가를 하고 싶다면, 포인터가 가르키는 곳만 바꿔 주면 되기 때문에 추가 및 삭제가 용이하다. 추가를 할떄는 1에 포인터가 가르키는 곳을 4로 바꿔주고 4의 포인터를 2로 가르켜주면 쉽게 추가 할 수 있다. 삭제는 반대로 해주면 된다.

array에 [1, 2, 3]이 있을 때, 한 예시로 2전까지 새로운 배열에 push추가 하고, 2가 나오면 거기 앞에 unshift해서 붙이고...만약 1000개의 데이터가 있을때, 777번째에 데이터를 추가한다고 생각해보면...이런과정보다 편리하기 때문에 linked list는 value 값을 추가 삭제를 많이 하는 곳에 사용된다.

1과 2 사이에 4를 추가 하려고 한다.
링크만 바꿔주면 손쉽게 추가 할 수 있다.

예제 코드는 링크를 남기도록 하겠다.(참고 : https://www.zerocho.com/category/Algorithm/post/58008a628475ed00152d6c4d)

 

Linked list 코드를 짤 때, 가장 중요한 코드는 this.head = this.head.next를 가르키는 코드!!!

 

#javascript#codestates#Linkedlist#datastructure

728x90
반응형