티스토리 뷰

반응형

2018.11.26 (월)

DS - 트리
그래프와는 다르게 여러 노드가 한 노드를 가리키지 않고 한 노드를 참조하는 노드는 하나뿐이다.

  1. 노드와 링크로 이루어져있다. 링크는 노드들을 연결시키다.
  2. 1개의 루트노드를 가지고 있고, 트리의 마지막 레벨에 있는 노드를 단말노드라고한다.
    같은 레벨에 있는 노드들은 서로를 형제 노드라고한다.
  3. 레벨이란 해당노드가 루트에서 떨어져있는 거리를 말한다.
  4. 높이란 해당 트리의 최대 레벨을 말한다.
    alt text
  • ex : 루트 노드 : 2 , 노드 6의 레벨은 3, 트리의 높이는 4

DS - 이진 트리

  • 한 노드에 자식 노드가 최대 2개
  • 이때 자식노드를 각각 왼쪽 자식 노드, 오른쪽 자식 노드라고 말한다.
  • 너비 우선 검색(BFS)
    • 너비 우선 탐색은 루트에서 시작하여 왼쪽부터 오른쪽으로 차례로 훑어나가는 검색법으로 O(n)시간이 걸린다.
    • 모든 노드를 확인하므로 메모리와 시간이 많이 소모된다.
  • 깊이 우선 검색(DFS)
    • 루트에서 우선순위가 가장 높은 자식노드를 방문.
      추가 자식노드가 있다면 더 내려가다 더이상 방문할 노드가 없다면 이전상태로 복귀하고,
      그곳에서 가능한 방문하지 않은 다른 곳을 방문하는 방식.
  • 종주법 ( 기준노드의 위치가 변하는걸 볼 수 있다)
    • 프리오더종주 : 기준노드 - 왼쪽노드 - 오른쪽노드 순 종주
    • 인오더종주 : 왼쪽노드 - 기준노드 - 오른쪽노드 순 종주
    • 포스트오더종주 : 왼쪽노드 - 오른쪽노드 - 기준노드 순 종주

DS - (맥스)힙 완전 이진트리의 모습을 가지며, 노드의 각 자식은 노드 자신의 값 이하여야한다.

  • 빠르게 최대값을 추출할 시에 사용
  • 힙의 삽입 : 삽입된 데이터를 먼저 배열의 마지막에 넣은후, 이 값을 부모노드의 키와 비교해서 더 큰값이면 부모 노드와 자리 변경
  • 힙의 삭제 : 배열의 마지막 요소를 최상위 루트에 넣는다. 왼쪽, 오른쪽 자식과 비교하여 가장 큰 것과 루트를 스왑


반응형

'TIL' 카테고리의 다른 글

6. 자료구조 - 스택  (0) 2018.12.03
5. 자료구조 - 연결리스트 vs 배열  (0) 2018.12.03
4. 자료구조 - 연결리스트의 종류  (0) 2018.12.03
3. 모델2방식, 스프링 MVC  (0) 2018.12.03
2. HTTP란 무엇인가 , 해시란?  (0) 2018.12.03
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
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 31
글 보관함