Graph in Java

hk·2022년 5월 29일
0

CodeStatesLog

목록 보기
2/15

tree는 graph의 일종이다



출처 https://www.youtube.com/user/damazzang

DFS : 마지막 노드까지 한 줄기를 따라 먼저 검색, 다음 줄기 끝까지 검색
BFS : 노드의 레벨 별로 먼저 검색, 다음 노드의 노드 검색

DFS : stack 이용
BFS : queue 이용


DFS는 Recursion을 이용하면 훨씬 쉬워진다 그런가
노드가 호출되면 인접 노드를 호출하는데
이 인접 노드의 인접 노드를 호출하고
그 인접 노드의 인접 노드들을 또 호출을 하고..


setGraph(size): 그래프에 size만큼의 버텍스를 추가
getGraph(): 인접 행렬 정보가 담긴 배열을 반환
addEdge(from, to): fromVertex와 toVertex 사이의 간선을 추가
hasEdge(from, to): fromVertex와 toVertex 사이의
간선이 존재하는지 여부를 Boolean으로 반환
removeEdge(from, to): fromVertex와 toVertex 사이의 간선을 삭제

fromVertex = 행
toVertex = 렬

adjMatrix.addVertex(3); // 3x3 행렬 만들기 

adjMatrix.addEdge(0, 1);  // 0행1열
adjMatrix.addEdge(0, 2);  // 0행2열
adjMatrix.addEdge(1, 2);  // 1행2렬

/*
							TO
		 	  	 0  1  2
		  	0	[0, 1, 1],
	FROM 	1	[0, 0, 1],
		  	2	[0, 0, 0]
*/

zeroToTwoEdgeExists = adjMatrix.hasEdge(0, 2);
System.out.println(zeroToTwoEdgeExists); // true

boolean oneToZeroEdgeExists = adjMatrix.hasEdge(1, 0);
System.out.println(oneToZeroEdgeExists); // false


자료구조 알고리즘에 대해 여러 유튜브 영상을 보았는데
엔지니어 대한민국이라는 분의 영상이 정말 설명이 잘 되어있었다
이 분 다른 것도 많이 올려주셨음 좋겠는데 더이상 안 올라오는 듯 ㅠㅠ
공익을 위해 유튜브 해주세요 ㅠㅠ

profile
cloud master가 될 거야! (not 석사)

0개의 댓글