YS's develop story

Graph (κ·Έλž˜ν”„) 정리 λ³Έλ¬Έ

Data Structure

Graph (κ·Έλž˜ν”„) 정리

Yusang 2021. 7. 29. 09:19

 πŸ‘¨πŸΌ‍πŸ’» Graph (κ·Έλž˜ν”„) 정리 With Python

πŸ₯ Graph λž€?

μ‹€μ œ μ„Έκ³„μ˜ ν˜„μƒμ΄λ‚˜ 사물을 Vertex(정점)와 Edge(κ°„μ„ )둜 ν‘œν˜„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•©λ‹ˆλ‹€.

 

 

Vertex  : μœ„μΉ˜λ₯Ό λ§ν•©λ‹ˆλ‹€. Node라고 ν•˜κΈ°λ„ ν•©λ‹ˆλ‹€.

Edge    : μœ„μΉ˜ κ°„μ˜ 관계λ₯Ό ν‘œμ‹œν•œ μ„ μž…λ‹ˆλ‹€.

Degree : λ°©ν–₯이 μ—†λŠ” κ·Έλž˜ν”„μ—μ„œ ν•˜λ‚˜μ˜ 정점에 μΈμ ‘ν•œ μ •μ μ˜ μˆ˜μž…λ‹ˆλ‹€.

Simple Path : 처음 정점과 끝 정점을 μ œμ™Έν•˜κ³  μ€‘λ³΅λœ 정점이 μ—†λŠ” κ²½λ‘œμž…λ‹ˆλ‹€. (A-B-CλŠ” Simple Path)

Cycle :  Simple Path의 μ‹œμž‘ 정점과 μ’…λ£Œ 정점이 λ™μΌν•œ κ²½μš°μž…λ‹ˆλ‹€.

 

πŸ‹ κ·Έλž˜ν”„μ˜ μ’…λ₯˜

 

Undirected Graph

λ°©ν–₯이 μ—†λŠ” κ·Έλž˜ν”„μž…λ‹ˆλ‹€.

Edgeλ₯Ό 톡해 Vertex μ–‘ λ°©ν–₯으둜 갈 수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

Directed Graph

λ°©ν–₯이 μžˆλŠ” κ·Έλž˜ν”„μž…λ‹ˆλ‹€.

 

 

Weighted Graph

Edge에 λΉ„μš© λ˜λŠ” κ°€μ€‘μΉ˜κ°€ ν• λ‹Ήλœ κ·Έλž˜ν”„μž…λ‹ˆλ‹€.

 

 

Connected Graph λ˜λŠ” Disconnected Graph

 

Connected Graph

Undirected Graph에 μžˆλŠ” λͺ¨λ“  λ…Έλ“œμ— λŒ€ν•΄ 항상 κ²½λ‘œκ°€ μ‘΄μž¬ν•˜λŠ” κ²½μš°μž…λ‹ˆλ‹€.

 

Disconnected Graph

Undirected Graph에 μžˆλŠ” λͺ¨λ“  λ…Έλ“œμ— λŒ€ν•΄ κ²½ν˜Έκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” κ²½μš°μž…λ‹ˆλ‹€.

 

μœ„ κ·Έλž˜ν”„λŠ” Disconnected Graphμž…λ‹ˆλ‹€.

 

 

Complete Graph

κ·Έλž˜ν”„μ˜ λͺ¨λ“  λ…Έλ“œκ°€ μ„œλ‘œ μ—°κ²°λ˜μ–΄ μžˆλŠ” κ·Έλž˜ν”„μž…λ‹ˆλ‹€.

 

🍊 Graph κ΅¬ν˜„ With Python

νŒŒμ΄μ¬μ—μ„œ μ œκ³΅ν•˜λŠ” λ”•μ…”λ„ˆλ¦¬μ™€ 리슀트 자료ꡬ쑰λ₯Ό ν™œμš©ν•΄μ„œ κ·Έλž˜ν”„λ₯Ό μ‰½κ²Œ ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μœ„ κ·Έλž˜ν”„λ₯Ό μ½”λ“œλ‘œ κ΅¬ν˜„ν•΄ λ΄…μ‹œλ‹€.

 

graph = dict()
graph['A'] = ['B', 'C']
graph['B'] = ['A', 'D']
graph['C'] = ['A', 'G', 'H', 'I']
graph['D'] = ['B', 'E', 'F']
graph['E'] = ['D']
graph['F'] = ['D']
graph['G'] = ['C']
graph['H'] = ['C']
graph['I'] = ['C', 'J']
graph['J'] = ['I']

print (graph) μ‹€ν–‰ κ²°κ³Ό

 

{ 'A': ['B', 'C'],

'B': ['A', 'D'],

'C': ['A', 'G', 'H', 'I'],

'D': ['B', 'E', 'F'],

'E': ['D'], 'F': ['D'],

'G': ['C'],

'H': ['C'],

'I': ['C', 'J'],

'J': ['I'] }

 

 

'Data Structure' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

Heap (νž™) 정리  (0) 2021.07.28
Tree (트리) 정리  (0) 2021.07.27
Hash Table (ν•΄μ‹œ ν…Œμ΄λΈ”) 정리  (0) 2021.07.23
Linked List (λ§ν¬λ“œ 리슀트) 정리  (0) 2021.07.23
Stack (μŠ€νƒ) 정리  (0) 2021.07.22
Comments