트리: 두 판 사이의 차이

K-위키
편집 요약 없음
38번째 줄: 38번째 줄:
해당 코드의 둘째 줄 또한 마찬가지로 1에서 2로 가는 편도 길이 존재한다는 것을 의미한다.
해당 코드의 둘째 줄 또한 마찬가지로 1에서 2로 가는 편도 길이 존재한다는 것을 의미한다.
== '틀:'을 잘못 쳐서 나오는거==
== '틀:'을 잘못 쳐서 나오는거==
: 대신 ㅣ를 눌러서 트리 쳐지면 여기로 워프된다.
':' 대신 'ㅣ'를 눌러서 트리 쳐지면 여기로 워프된다.

2020년 6월 25일 (목) 18:23 판

영단어

Tree.

한마디로 나무. 크리스마스 트리 같은 거다.

컴퓨터 용어

컴퓨터 과학에서 트리란 사이클이 없는 그래프를 말한다.

트리를 구성하는 요소에는 크게 두 가지가 있다.

첫 번째는 Node이고, 두 번째는 edge이다.

동그라미하고 선이라고 보면 참 편하다.

트리의 종류에는 또 크게 두 가지가 있는데, directed와 undirected 그래프가 있다.

이는 방향성이 있는 그래프와 방향성이 없는 그래프를 뜻한다.

방향성이 있다는 것은, 편도라는 것이고 방향성이 없다는 것은 왕복이라는 것이다.

생각해보면 참 편한 자료구조이다.

구현에는 두 가지 방식이 있는데 배열로 무식하게 때려박는 방식과 벡터를 사용하는 방식이 있다.

배열로 무식하게 때려박는 방식

 int tree[N][N]
 tree[1][2] = 1;

해당 코드의 둘째 줄은 1번 노드에서 2번 노드로 가는 편도 길이 존재한다는 것을 의미한다.

벡터로 스마트하게 박는 방식 이 방식은 공간을 아낄 수 있다. 위의 배열 방식은 무조건 (자료 사이즈)*N^2 바이트의 공간을 요구한다.

 vector<int> tree[N];
 tree[1].push_back(2);

해당 코드의 둘째 줄 또한 마찬가지로 1에서 2로 가는 편도 길이 존재한다는 것을 의미한다.

'틀:'을 잘못 쳐서 나오는거

':' 대신 'ㅣ'를 눌러서 트리 쳐지면 여기로 워프된다.