오늘은 비슷한듯 비슷하지 않은 2 + 1개의 데이터 구조를 공부할 예정이다.
Graph 란 Node 와 Node들을 잇는 Edge으로 구성되어 있는 데이터 구조이다.
Node : Node
Edge : Node 와 Node 를 잇는 선
adjacent(a, b) : a 와 b 를 잇는 Edge 가 있는지 확인
remove_node(a) : a Node 를 삭제한다.
get_node_value(a) : a Node 의 value 를 확인
set_node_value(a, b) : a Node 의 value 를 b로 설정
ex) 네비게이션
모양은 Grahp 와 비슷하지만, 위에서 아래로 단방향성을 가지고 있다.
root : 트리의 inital Node
parent : 현재 노드의 부모 노드 ( 2, 3번 Node 의 parent 는 1번 Node 이다.)
Subtree : (2 - 4,5 - 8,9,10,11), (4 - 8,9) ... 등등
depth : root 와 해당 Node 잇는 Edge 의 갯수 (6의 경우 1 - 3 - 6 --> depth : 2)
라는 규칙을 갖는 Tree 이다.
insert_node(x) : Node 를 BST 규칙 에 의해 적절한 위치에 배치시킨다.'
remove_node(x) : x값을 가지고 있는 Node 를 찾아 삭제한후 해당 Node 의 child을 적절한 위치에 배치시킨다.
contain(x) : x 값을 가지고 있는 Node 를 찾는다.
for loop 과 queue 을 이용한다.
풀이시간단축 을 위해 일정한 규칙(가능성)에 만족하지 않으면 그 하위 child은 배제 한 채 다른 Node 를 탐색하는 방법이다.