Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- JavaScript
- windows
- Callback
- 책
- C
- write
- go언어
- range
- Golang
- 리뷰
- bitcoin
- go
- c++
- Sync
- GO 언어
- FOR
- tcp
- Linux
- API
- 영화
- Python
- http
- File
- Close
- install
- mutex
- json
- package
- window
- channel
Archives
- Today
- Total
Code Habit
golang ) 연결 리스트 사용하기 본문
"container/list" 패키지를 사용하면 go에서 연결리스트를 사용할 수 있다.
다음은 "container/list"에서 연결리스트를 사용하기 위해 제공하는 함수이다.
- func New() *List: 연결 리스트 생성
- func (I *List) PushBack(v interface{}) *Element : 맨 뒤에 노드 추가
- func (I *List) PushFront(v interface{}) *Element : 맨 앞에 노드 추가
- func (I *List) PushBackList(other* List) : 맨 뒤에 다른 리스트를 붙임
- func (I *List) PushFrontList(other* List) : 맨 앞에 다른 리스트를 붙임
- func (I *List) InsertAfter(v interface{}, mark *Element) *Element : 특정 노드 뒤에 노드 추가
- func (I *List) InsertBefore(v interface{}, mark *Element) *Element: 특정 노드 앞에 노드 추가
- func (I *List) Len() int : 리스트의 노드 개수(길이)를 구함
- func (I *List) Remove(e *Element) interface{} : 특정 노드를 삭제
사용 예제
// main.go
package main
import (
"container/list"
"fmt"
)
func main() {
ll := list.New()
ll.PushBack(1)
ll.PushBack("이")
ll.PushBack("삼")
ll.PushBack(true)
e := ll.Back() // 리스트의 맨 뒤 노드를 가져옴
ll.Remove(e) // 위 노드를 삭제
size := ll.Len()
fmt.Println(size) // 3
fmt.Println("=====Front to Back=====")
for e := ll.Front(); e != nil; e = e.Next() {
fmt.Printf("%T : %v\n", e.Value, e.Value)
}
fmt.Println("=====Back to Front=====")
for e := ll.Back(); e != nil; e = e.Prev() {
fmt.Printf("%T : %v\n", e.Value, e.Value)
}
}
|
list.New() 함수를 통해 ll 리스트를 만들고 데이터를 뒤쪽으로 차례로 넣는다. 여기서 주목할 건 한가지 자료형만 넣는 것이 아니라 여러가지 자료형을 하나의 리스트에 넣을 수 있단 것이다. ll.Back() 함수로 리스트의 맨 뒤 노드를 가져오고 ll.Remove() 함수로 맨뒤 노드를 삭제한다. 그리고 ll.len() 함수로 리스트의 개수를 출력한 뒤 front -> back, back -> frnot 순서로 리스트 노드의 타입과 값을 출력한다.
출력 값
3
=====Front to Back=====
int : 1
string : 이
string : 삼
=====Back to Front=====
string : 삼
string : 이
int : 1
|