일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Swift
- SwiftUI
- 앨런
- forEach
- deadlock
- 알고리즘
- 프로세스 스케줄링
- 100 days of SwiftUI
- core data
- 동시성
- Apple Developer Academy
- 파일 시스템
- 데드락
- 운영체제
- 상호배제
- IOS
- UserDefaults
- Codable
- 비동기
- 인프런
- 가상 메모리
- struct
- Algorithm
- decode
- @state
- COLOR
- async
- Linked List
- 오브젝트
- 동기화
Archives
- Today
- Total
기어가더라도 제대로
[알고리즘 스터디 with 케이시] 비선형 자료구조 - 그래프 본문
[알고리즘 스터디 with 케이시] 비선형 자료구조 - 그래프
정의
- 정점과 정점 사이를 연결하는 간선으로 이루어진 비선형 자료구조
- 정점 집합과 간선 집합으로 표현할 수 있다.
사용처
- 지하철 노선도
- 페이지 랭크 알고리즘(구글 검색 알고리즘)
특징
- 정점은 여러 개의 간선을 가질 수 있다.
- 크게 방향 그래프와 무방향 그래프로 나눌 수 있다.
- 간선은 가중치를 가질 수 있다.
- 사이클이 발생할 수 있다.
무방향 그래프
간선의 방향이 존재하지 않는 그래프
-> 양방향으로 이동이 가능
- [A - B]
- A to B : (A,B)
- B to A : (B,A)
- 위 둘은 같은 간선
방향 그래프
간선의 방향성이 존재하는 그래프
-> 일방 통행이다.
- [A - B]
- A to B : <A,B>
- B to A : <B,A>
- 위 둘은 서로 다른 간선
연결 상태에 따른 분류 3가지
- 연결 그래프: 모든 정점이 서로 이동 가능 상태인 그래프
- 비연결 그래프: 특정 정점쌍 사이에 간선이 존재하지 않는 그래프
- 완전 그래프: 모든 정점끼리 연결된 상태인 그래프
한 정점의 간선 수 == 모든 정점의 수 - 1
모든 간선의 수 == (모든 정점의 수 - 1) * 정점 수
모든 간선 수 == 한 정점의 간선 수 * 정점의 수
사이클
그래프의 정점과 간선의 부분 집합에서 순환이 되는 부분
그래프의 구현 방법
- 인접 행렬(Adjacency Matrix)
- 이차원 배열로 구현 가능
- 인접 리스트(Adjacency List)
- 연결 리스트로 구현 가능
'CS > 자료구조' 카테고리의 다른 글
[알고리즘 스터디 with 케이시] 선형 리스트 - 연결 리스트 (0) | 2022.07.22 |
---|---|
[알고리즘 스터디 with 케이시] 선형 자료구조 - 배열 (0) | 2022.07.22 |
[코쿼 알고리즘 스터디 with 케이시] BFS, DFS (0) | 2022.07.20 |
좌표 사이의 거리를 구하는 로직 (0) | 2022.05.30 |
소수 구하는 메서드 (0) | 2022.05.30 |
Comments