GO · 컬렉션
링크드 리스트 (container/list)
container/list는 이중 연결 리스트를 제공합니다. O(1) 삽입/삭제가 필요할 때 사용합니다.
컬렉션중급listlinked-listcontainerdoubly-linked
핵심 설명
container/list는 이중 연결 리스트를 제공합니다. O(1) 삽입/삭제가 필요할 때 사용합니다.
Go code
package main
import (
"container/list"
"fmt"
)
func main() {
l := list.New()
// 삽입
l.PushBack("두 번째")
front := l.PushFront("첫 번째")
l.PushBack("세 번째")
l.InsertAfter("사이에", front)
// 순회
for e := l.Front(); e != nil; e = e.Next() {
fmt.Println(e.Value)
}
// 역순 순회
fmt.Println("--- 역순 ---")
for e := l.Back(); e != nil; e = e.Prev() {
fmt.Println(e.Value)
}
// 삭제
l.Remove(front)
fmt.Println("길이:", l.Len())
}학습 팁
리스트 원소의 Value는 any 타입입니다. 타입 안전성이 필요하면 제네릭 래퍼를 만드세요.
주의할 점
이미 삭제된 원소에 Next()를 호출하면 예상치 못한 동작이 발생합니다. 삭제된 원소를 참조하지 마세요.
자주 묻는 질문
링크드 리스트 (container/list)란 무엇인가요?
container/list 는 이중 연결 리스트를 제공합니다. O(1) 삽입/삭제가 필요할 때 사용합니다.
링크드 리스트 (container/list) 학습 시 주의할 점은 무엇인가요?
이미 삭제된 원소에 Next() 를 호출하면 예상치 못한 동작이 발생합니다. 삭제된 원소를 참조하지 마세요.
Continue Learning
Go 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.