ํค์๋
- ๊ทธ๋ํ
- ์ธ์ ํ๋ ฌ/์ธ์ ๋ฆฌ์คํธ
๊ทธ๋ํ
- ๊ทธ๋ํ๋ ๊ธฐ๋ณธ์ ์ผ๋ก vert(๋ ธ๋, ์ ์ )์ edge(๊ฐ์ , ๋งํฌ)๋ก ๊ตฌ์ฑ๋์ด์๋ค.
- ๊ทธ๋ํ๋ ๋ ธ๋๊ฐ์ ๊ด๊ณ, ํธ๋ฆฌ๋ ๋ ธ๋๊ฐ์ ๊ณ์ธต์ ํํ
- ๋ฐฉํฅ์ฑ(๋จ๋ฐฉํฅ, ์๋ฐฉํฅ)
- ์์๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๋ง์ง๋ง ๋ ธ๋๊ฐ Leaf node๊ฐ ๋๋ค.
- ์๋ฐฉํฅ ํํ์ ๊ฒฝ์ฐ, ๊ทธ ์ฃผ๋ชฉ์ ์ด ๋
ธ๋๊ฐ์
์ํธ ๊ตํ
(์๋ก ๋ ธ๋ ์ ๋ณด๋ฅผ ๊ณต์ )
- ๋ฌด๋ฐฉํฅ์ฑ
- ๋ฐฉํฅ์ด ์กด์ฌํ์ง ์๊ณ ์ฐ๊ฒฐ๋ ๋ ธ๋๋ค(์ด์ ๋ ธ๋๋ค)๋ผ๋ฆฌ ์๋ก ์ธ์
- ์ํ์ฑ
- ๊ทธ๋ํ๊ฐ ๊ฐ์ง ์ ์๋ ์ฑ์ง๋ก, ์์ ๊ฐ์ด ์ํ์ ํ์ฑํ ์ ์๋ค.
[๊ทธ๋ํ] ์ธ์ ๋ฆฌ์คํธ, ์ธ์ ํ๋ ฌ
- ๊ทธ๋ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๋ ๋๊ฐ์ง ๋ฐฉ๋ฒ
- ์ธ์ ๋ฆฌ์คํธ
- ๊ทธ๋ํ์ ํํ๋ฅผ ๋ฆฌ์คํธ๋ก ํํ
- ์ ์ฒด ๋ ธ๋์ ๋ชฉ๋ก์ ์ ์ฅํ๊ณ ์๋ค.
ํ์ด์ฌ์ ๋์ ๋๋ฆฌ๋ก ๊ทธ๋ํ๋ฅผ ๊ตฌํํ ์์)
class Graph:
def __init__(self):
self.vertices = {
1 : {2, 3, 4},
2 : {3},
3 : {},
4 : {3}
}
- ์ธ์ ํ๋ ฌ
- ํ๋ ธ๋์ ์ฐ๊ฒฐ๋๋ ์ด๋ ธ๋์ ๋ํด์ ๊ฐ์ด 1(์ฆ, edge๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ)
- ๋ ธ๋ ๊ฐ ๊ฐ์ ๊ฐ์ค์น๋ฅผ ํํํ ์ ์๋ค.(0์ด๋ฉด ๋งํฌ๊ฐ ์๋์ด์๊ณ , ๊ทธ ์ธ์ ์ซ์๋ฉด ๊ฐ์ค์น๋ฅผ ๊ฐ์ง๋ฉด์ ์ฐ๊ฒฐ)
- ํ๋ ฌ๋ก ํํ์ '๋ ธ๋๊ฐ' ์์ฒด์ ์ธ๋ฑ์ค ์ฌ์ด์ ์ฐ๊ด์ฑ์ด ์๋ค.
class Graph:
def __init__(self):
self.edges = [[0,1,1,1],
[0,0,1,0],
[0,0,0,0],
[0,0,1,0]]
'๐ฟ Data > ๋ถํธ์บ ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] 105. BFS/DFS (0) | 2022.04.13 |
---|---|
[TIL] 104. [์๋ฃ๊ตฌ์กฐ] ์ํ (0) | 2022.04.12 |
[TIL] 102. [์๋ฃ๊ตฌ์กฐ] ํด์ํ ์ด๋ธ (0) | 2022.04.11 |
[TIL] 101. [๋ถํ ์ ๋ณต, ์ ๋ ฌ] ํต ์ ๋ ฌ, ๋ณํฉ ์ ๋ ฌ (0) | 2022.04.07 |
[TIL] 100. [์๊ณ ๋ฆฌ์ฆ] ํ์ (0) | 2022.04.06 |