본문 바로가기

컴퓨터기초/자료구조

Linked List 에 대해서

1 . Linked List  원소를 배열처럼 차례대로 저장하지만, 원소들이 메모리상에 연속적으로 위치하지 않는다는 점이 다르다.  

특징 다음과 같은 것들이 있다.

1.  연속되는 항목들이 포인터로 연결된다. 

2.  마지막 항목은 Null을 가리킨다. 

3. 프로그램이 수행되는 동안 크기가 커지거나 작아질 수 있다. 

4. (시스템 메모리가 허용하는 범위내에서) 필요한 만큼 길어질 수 있다.

 5. 메모리 공간을 낭비하지않는다,(하지만 포인터를 위한 추가의 메모리를 필요로 한다.)  

 

배열에 비해 데이터의 추가/삽입 및 삭제가 용이하나 순차적으로 탐색하지 않으면 특정 위치의 요소에 접근할 수 없다.  

그래서 일반적으로는 탐색 속도가 느리다. 

그렇기에 탐색 또는 정렬을 자주하면 배열을, 추가/삭제가 많으면 연결리스트를 사용하는 것이 유리하다.  

노드(Node) 연결리스트에서 각 값은 값 자신과 그 다음값을 가리키는 포인터가 포함되어있다. 이것을 노드라고 한다. 

Property  method ..  

 

append(데이터): 리스트의 맨 끝에 데이터를 추가한다. 

removeAt(위치): 해당 위치에 있는 데이터를 삭제한다. 

indexOf(데이터): 해당 데이터의 인덱스를 반환한다. 존재하지 않을 경우 결과 값은 -1이다. 

remove(데이터): 데이터를 삭제한다. 

insert(위치, 데이터): 해당 위치에 데이터를 삽입한다. 

isEmpty(): 데이터가 하나도 없다면 true를, 그 외엔 false를 반환한다. 

size(): 데이터 개수를 반환한다. 배열의 length 프로퍼티와 비슷하다.