golang container package
container package
golang์๋ ๋นํธ์ธ์ผ๋ก ์ฌ์ฉํ ์ ์๋ container package๊ฐ ์๋ค.
๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด, ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ ์ผ์ด ๊ฝค ์๊ธด๋ค.
go์์๋ container ํจํค์ง์์ ๊ธฐ๋ณธ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํด์ฃผ๋ฏ๋ก ๊ฝค๋ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
ํจํค์ง์์ ์ ๊ณตํ๋ ์๋ฃ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
Linked list
Heap
Ring (Circular list)
container ํจํค์ง๋ฅผ ์ด์ฉํด์ ๊ฐ๋จํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌํํด๋ณด์.
container/list
package main
import (
"container/list"
"log"
)
func main() {
lst := list.New()
lst.PushBack(1)
lst.PushBack(2)
lst.PushBack(3)
log.Println(lst.Len())
}์์ ๊ฐ์ด container/list ํจํค์ง๋ฅผ importํ๋ฉด, ์์ฝ๊ฒ linked list๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๊ฐ๋ฐ์ ํ๋ฉด์ linked list๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๋ฉด, ๊ฝค๋ ์๊ฐ์ ๋จ์ถ์ํฌ ์ ์์ ๊ฒ์ด๋ค.
list๋ฅผ ์ํํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ๋ ๊ฐ๋ฅํ๋ค.
container/heap
๋ค์์ heap ํจํค์ง์ด๋ค. ํ์๋ ์ต๊ทผ ํ์ฌ์์ ์ฒด๊ฒฐ์์ง/์ค๋๋ถ์ ๊ตฌํํ๋ฉด์ min heap๊ณผ max heap์ ๊ตฌํํ ์ผ์ด ์์๋๋ฐ,
container/heap ํจํค์ง๋ฅผ ํตํด ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์ ์์๋ค.
heap ํจํค์ง์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ธํฐํ์ด์ค๊ฐ ํ์ํ๋ค.
ํ ๋ฒ ๊ตฌํํด์ ์ฌ์ฉํด๋ณด์. ์์ ์์๋ min heap์ ๊ตฌํํด๋ณธ๋ค.
Less ์กฐ๊ฑด์ ๋ถํธ๋ง ๋ฐ๋๋ก ๋ฐ๊ฟ์ค๋ max heap์ผ๋ก ๋ฐ๊พธ์ด ์ฌ์ฉํ ์ ์์ด ํธํ๋ค.
container/ring
๋ค์์ ring์ด๋ค. ring์ ๋น๊ต์ ์ฌ์ฉํ ์ผ์ด ๋ง์ด ์๋ ๋ฏ ๋ณด์ด์ง๋ง, ์์๋๋ฉด ๋๋๋ก ๋์์ด ๋ ์๋ ์๋ค.
๊ฐ์ธ์ ์ผ๋ก๋ list๋ฅผ ์ฐ๋ ํธ์ด๊ธด ํ๋ค.
๋ ๊ฐ์ ring์ ์ฐ๊ฒฐํ๋ ๊ฒ๋ ๋ฌผ๋ก ๊ฐ๋ฅํ๋ค.
Last updated