[Rust 공식문서 한국어 정리] 130. Rust LinkedList<T> 가이드
[Rust 공식문서 한국어 정리] 130. Rust LinkedList 가이드
원문 제목: Struct std::collections::LinkedList
작성자: The Rust Project
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 1. 서론 — 이 문서가 다루는 내용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Rust의 LinkedList가 제공하는 이중 연결 리스트를 상세히 다룹니다.
LinkedList와 Vec, VecDeque의 성능 특성 비교를 학습합니다.
연결 리스트의 장점과 단점, 그리고 실제 사용 빈도가 낮은 이유를 정리합니다.
양방향 삽입/삭제, 리스트 병합, 분할 메서드를 설명합니다.
CursorMut를 사용한 현재 위치 기반 탐색과 수정 패턴을 다룹니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔑 2. 핵심 개념 4가지
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
① LinkedList — 이중 연결 리스트
② O(1) 노드 삽입/삭제 — 이미 위치를 알고 있을 때 상수 시간
③ CursorMut — 현재 위치 기반 탐색과 수정 커서
④ 메모리 오버헤드 — 노드당 두 개의 포인터 추가
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📖 3. 주요 내용 상세
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LinkedList는 이중 연결 리스트 기반의 컬렉션입니다.
LinkedList::new()로 빈 리스트를 생성합니다.
push_front와 push_back으로 양쪽 끝에 삽입합니다.
pop_front와 pop_back으로 양쪽 끝을 제거합니다.
front, back으로 양쪽 끝을 조회합니다.
append(&mut other)로 다른 리스트를 뒤에 연결합니다.
이 연산은 O(1)이며 other은 비게 됩니다.
split_off(at)은 인덱스 기준으로 리스트를 두 개로 분할합니다.
splice_in(where, other)은 특정 위치에 다른 리스트를 삽입합니다.
CursorMut는 현재 위치를 유지하며 리스트를 탐색하고 수정할 수 있는 커서입니다.
CursorMut::current()는 현재 노드의 Option<&mut T>를 반환합니다.
CursorMut::insert_after()와 insert_before()로 현재 위치 기준 삽입합니다.
CursorMut::remove_current()로 현재 노드를 제거합니다.
연결 리스트의 임의 인덱스 접근은 O(n)입니다.
캐시 효율성이 나쁘고 메모리 오버헤드가 큽니다.
따라서 대부분의 경우 Vec이나 VecDeque가 더 효율적입니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🛠 4. 실전 활용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
리스트 병합과 분할이 빈번한 알고리즘에서 LinkedList를 고려합니다.
CursorMut로 특정 위치 기반의 반복 삽입/삭제를 효율적으로 구현합니다.
메모리 단편화를 허용하고 노드 기반 연산이 필요한 특수한 경우에 사용합니다.
일반적인 경우에는 VecDeque가 대부분 더 나은 선택입니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 5. 정리
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LinkedList는 이중 연결 리스트로 양방향 O(1) 삽입/삭제를 제공합니다.
CursorMut로 위치 기반 연산을 효율적으로 수행할 수 있습니다.
대부분의 일반적인 경우에는 Vec이나 VecDeque가 더 효율적입니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔗 출처 링크
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
원문: https://doc.rust-lang.org/std/collections/struct.LinkedList.html
LinkedList Methods: https://doc.rust-lang.org/std/collections/struct.LinkedList.html
#Rust #LinkedList #연결리스트 #컬렉션 #번역

오뉴노노 님의 최근 댓글
ㅋㅋㅋㅋㅋ 2019 01.14 잘 읽었습니다 2018 12.30 포인트가 없어서 아직 시작을 못하고있는데요! 글은 잘 읽었습니다! 포인트 쌓고 도전할거에요 2018 12.30