[CLRS] [20-1] Representation of graphs

2024. 11. 30. 19:48· CS Study/CLRS (자료구조 | 알고리즘)
목차
  1. 1. Graph?
  2. 1.1. wark?
  3. 1.2. path
  4. 1.3. cycle
  5. 2. Directed Graph
  6. 3. Graph 구현
  7. 3.1. 인접행렬로 표현하기
  8. 4. Code 구현

1. Graph?

- 두 대상 사이 관계를 나타낼 수 있는 자료구조

- 아래의 그림처럼 동그란 점들이 Node, 점끼리 이어진 선들이 edge가 됨.

1.1. wark?

- 두 Node을 잇는 edge가 존재하는 경우 둘을 인접한다고 정의한다.

-- 인접한 꼭짓점을 따라 이동한 족적을 Walk라고 한다.

- 시작점과 끝점이 동일한 경우 닫힌 walk라고 하며,

- 다른경우 열린 walk라고 한다.

 

1.2. path

- walk 가운데 중복된 꼭짓점이 존재하지 않는 것을 path라고한다.

1.3. cycle

- 닫힌 walk와 path의 조건을 모두 만족하는 경우 이를 cycle이라고 한다.

ex) 위의 그림에선 A - B - D - A 가 된다.

 

2. Directed Graph

- 엣지에 방향이 존재하는 경우 Directed Graph(유향 그래프), 방향이 존재하지 않으면 Undirected Graph(무향 그래프)라한다.

3. Graph 구현

3.1. 인접행렬로 표현하기

- 다음 그림과 같이 A는 B,D와 인접하기에 B,D에 1을 할당하고,

- B는 A,D,C와 인접하기에 A,C,D에 1을 할당하는 식으로 Matrix을 작성한다.

 

- 만약 Directed Graph라면 다음과 같이 표기하면 된다.

- 여기서 각 엣지에 가중치를 부여한다면 다음과 같이 작성이 가능하다.

 

4. Code 구현

Graph = [[0,4,0,0,0],
         [0,0,2,1,0],
         [0,0,0,0,8],
         [5,0,0,0,0],
         [0,0,0,10,0]]

Graph = {'A' : [('B',4)],
         'B' : [('C',2),('D',1)],
         'C' : [('E',8)],
         'D' : [('A',5)],
         'E' : [('D',10)]}

'CS Study > CLRS (자료구조 | 알고리즘)' 카테고리의 다른 글

[CLRS] [20-3] DFS(Depth-first search)  (0) 2024.11.30
[CLRS] [20-2] BFS(Breadth-first search)  (0) 2024.11.30
[CLRS] [19] disjoint set(Union-Find)  (0) 2024.11.30
[CLRS] [17][18] B-tree  (2) 2024.11.30
[CLRS] [16] Amortized Analysis (분할 상환 분석)  (0) 2024.11.29
  1. 1. Graph?
  2. 1.1. wark?
  3. 1.2. path
  4. 1.3. cycle
  5. 2. Directed Graph
  6. 3. Graph 구현
  7. 3.1. 인접행렬로 표현하기
  8. 4. Code 구현
'CS Study/CLRS (자료구조 | 알고리즘)' 카테고리의 다른 글
  • [CLRS] [20-3] DFS(Depth-first search)
  • [CLRS] [20-2] BFS(Breadth-first search)
  • [CLRS] [19] disjoint set(Union-Find)
  • [CLRS] [17][18] B-tree
23학번이수현
23학번이수현
23학번이수현
밑바닥부터 시작하는 AI보안전문가
23학번이수현
전체
오늘
어제
  • 분류 전체보기 (243)
    • Statistic Study (47)
      • Mathematical Statistics(수리통.. (47)
    • Mathematics Study (15)
      • Linear Algebra (선형대수학) (15)
    • CS Study (74)
      • CLRS (자료구조 | 알고리즘) (49)
      • Database(DB) (11)
      • C++ (11)
      • 컴퓨터 구조 (2)
      • MongoDB (1)
    • DS Study (56)
      • CS 229(Machine Learning) (19)
      • CS 224n(NLP) (5)
      • Web Scraping (7)
      • R4DS(R언어) (20)
      • 밑바닥부터 시작하는 딥러닝 1 (5)
    • Hacking Study (0)
      • Web Hacking (0)
    • 코딩테스트 (5)
      • 백준-Python (5)
    • Paper Review(논문 리뷰) (43)
      • Deep Learning (16)
      • TCGA 관련 논문 (4)
      • Computer Vision (18)
      • NLP (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 정렬
  • R언어
  • clrs
  • NLP
  • 파이썬
  • 자료구조
  • LSTM
  • cs 224n
  • 백준
  • Introduction to Algorithms
  • Linear Algebra
  • Machine Learning
  • web scraping
  • AI
  • 논문 리뷰
  • 선형대수학
  • 알고리즘
  • graph
  • C++
  • Data Structure
  • 데이터분석
  • Algorithms
  • db
  • deep learning
  • introduction to algoritmhs
  • 시간복잡도
  • R4DS
  • 딥러닝
  • cs229
  • 수리통계학

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
23학번이수현
[CLRS] [20-1] Representation of graphs
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.