LinkedList
- 삽입, 삭제, 검색
LinkedList의 생김새
LinkedList 검색
- 연결리스트는 인덱스를 접근할 수 없기 때문에 검색하기 위해서는 next로 n번 움직여야 한다.
LinkedList 추가
LinkedList 삽입
LinkedList 삭제
LinkedList의 장점
- 배열의 복사나 재할당없이 데이터 추가 가능
- 유연한 공간
LinkedList의 단점
- 데이터 접근에 대한 시간이 늘어남
읽는데 유리한 자료구조는 Array
삭제하고 변경하는데 유리한 자료구조는 LinkedList
LinkedList 구현
- Head 더미 노드를 두면 연결 리스트를 구현하는데 편리하다.
- 연결리스트는 노드 기반이다.
- 노드는 class로 만들어준다.
Linked List의 데이터 삽입
- 이전 노드의 next를 새로운 노드를 가르키게 하면 데이터가 삽입이 된다!
Linked List의 전체 삭제
정말 빠름 O (1)
그냥 더미 노드인 head의 next를 null로 만들어버리면 모든 리스트가 삭제 된다(연결이 끊어지는것)
public void clear() {
this.size = 0;
this.head.next = null;
}
Linked List의 일부 삭제
O (n)
어떠한 값을 삭제하는 경우 head부터 시작하여, Null을 만날때까지 계속 next로 다음 노드를 접근하여 값이 같은 경우 그 값을 삭제 하지 않고 이전 노드와 다음노드를 연결시켜 현재 노드를 삭제함. 이때 현재 노드의 next를 Null로 가르키도록 만들면 된다.
'자료구조&알고리즘' 카테고리의 다른 글
HASH와 HASH Collision 그리고 Chaining (해시 자료구조) (0) | 2022.04.07 |
---|---|
스택과 큐에 대하여 (0) | 2022.04.07 |
Double Linked List (이중 연결 리스트) (0) | 2022.04.07 |
자료구조 & 알고리즘을 왜 공부해야 할까? (0) | 2022.04.07 |
알고리즘은 뭘까? (0) | 2022.04.06 |