[ 목차 ]
📢 연결 리스트(Linked List)
- 데이터를 링크로 연결해서 관리하는 자료구조
- 자료의 순서는 정해져 있지만, 메모리 상 연속성은 보장되지 않는다.
🔊 연결 리스트(Linked List)의 장점
- 데이터 공간을 미리 할당할 필요가 없음
- 즉, 리스트의 길이가 가변적이라 데이터 관리(추가 및 삭제) 가 용이하다.
🔊 연결 리스트(Linked List)의 단점
- 연결 구조를 위한 별도의 데이터 공간이 필요하다.
- 연결 정보를 찾는 시간이 필요하다(접근 속도가 상대적으로 느리다)
- 데이터를 추가 및 삭제 시 앞 뒤 데이터의 연결을 재구성하는 작업이 필요하다
🔊 연결 리스트의 기본 구조
- 노드(Node) : 데이터 저장 단위로, 값과 포인터로 구성되어 있다.
📢 연결 리스트의 기본 연산
🔊 데이터 추가
- 데이터 추가 : 데이터를 추가할 위치(Head, 중간, Tail) 에 따른 연결 작업이 필요하다.
🔉 연결리스트의 가장 앞 부분에 데이터를 추가하는 상황
- (1). 추가할 데이터를 담을 노드를 생성한다.
- (2). 링크 연결 작업을 진행한다.
- (3). Head를 이전하는 작업을 진행한다.
🔉 연결리스트의 맨 마지막 부분에 데이터를 추가하는 상황
- (1). 추가할 데이터를 담을 노드를 생성한다.
- (2). Head로 부터 끝 노드까지 순회한다.
- (3). 링크를 연결하는 작업을 진행한다.
🔉 연결리스트의 중앙에 데이터를 추가하는 상황
- (1). 추가할 데이터를 담을 노드를 생성한다.
- (2). Head부터 데이터를 추가하는 위치 직전까지 노드를 순회한다.
- (3). 링크를 연결하는 작업을 진행한다.
🔊 데이터 삭제
- 데이터 삭제 : 데이터를 삭제할 위치(Head, 중간, Tail)에 따른 연결 작업이 필요하다.
🔉 연결리스트의 가장 앞 부분에 데이터를 삭제하는 상황
- (1). 삭제할 대상의 노드를 지정한다(Delete_Node)
- (2). Head를 이전하는 작업을 진행한다.
- (3). Delete Node 삭제
🔉 연결리스트의 맨 마지막 부분에 데이터를 삭제하는 상황
- (1). Head로부터 가장 끝까지 순회한다.
- (2). 끝 노드를 삭제한다.
- (3). 삭제 이전 노드의 링크를 처리한다.
🔉 연결리스트의 중앙에 데이터를 삭제하는 상황
- (1). Head로부터 삭제 대상 노드까지 순회 및 해당 노드를 지정(Delete_Node)
- (2). 삭제 대상 이전/이후 노드의 링크 연결 작업을 진행한다.
- (3). Delete Node를 삭제한다.
📢 노트 정리
반응형
'Knowledge > 자료구조' 카테고리의 다른 글
힙(Heap)의 구조 [삽입/삭제] (0) | 2023.08.12 |
---|---|
[Java/자료구조] 해시테이블(HashTable)이란? (0) | 2023.08.11 |
[Java/자료구조] HashMap 자료구조 파헤치기 (0) | 2023.08.11 |
댓글