개발/자료구조

자료구조 Graph, Tree, BST

ksy0314 2020. 9. 7. 10:19

Graph

  • 그래프는 노드, 노드를 연결하는 간선 으로 구성된 자료구조
  • 무방향 그래프(양쪽 노드 모두 상대 노드에 접근가능)
  • 방향성 그래프(한쪽 노드에서만 상대 노드에 접근가능)
  • 진입차수: 해당 노드에 접근할 수 있는 다른 노드의 수
  • 진출차수: 해당 노드가 접근할수 있는 다른 노드의 수
  • 인접행렬
    • 그래프의 연결관계를 이차원 배열로 나타냄
    • 장점: 구현이 쉽고 두 노드가 연결 되어있는지 확인이 쉽다.O(1)
    • 단점: 한 노드에 연결된 모든 노드들에 방문하고 싶은경우 O(v)의 시간이 걸림
  • 인접 리스트
    • 각 노드의 연결관계를 리스트로 나타냄
    • 장점: 간선의 개수에 비례하는 메모리 만을 차지함, 한노드에 연결된 모든 노드들에 방문하고 싶은경우 진출차수만큼의 시간복잡도를 가짐
    • 단점: 두 노드가 연결되어있는지 확인하는데 O(v)만큼의 시간이 걸림

Tree

  • 트리구조는 각 노드가 1개의 부모 노드를 가지고 부모는 0개 이상의 자식 노드를 가진 자료구조이다.
  • root: 최상위 노드를 말한다
  • depth: root를 기준으로 다른 노드에 접근하기위한 거리를 말한다.
  • height: tree에서 가장 큰 depth
  • sibling: 같은 부모를 가지며 같은 depth를 가진 노드들을 말한다.
  • leaf: 자식이 없는 노드를 말한다.

BST(Binary search Tree)

  • 최대 2개의 자식만 같는 트리
  • 노드의 왼쪽 서브트리에는 부모 노드의 값보다 작은 값이, 오른쪽 서브트리에는 부모 노드의 값보다 같거나 큰값이 존재함
  • 깊이 우선 탐색: 해당 노드의 자식노드를 우선 파악한 후 형제노드를 파악하는 방식 
  • 너비 우선 탐색: 해당 노드의 형제 노드를 우선 파악한 후 자식노드를 파악하는 방식
  • 부모 노드를 파악하는 순서에 따라 전위 순회(부모,좌,우), 중위 순회(좌, 부모, 우), 후위 순회(좌, 우, 부모)로 나뉜다.
  • 정 이진 트리: 모든 노드가 0개 혹은 2개의 자식노드를 가진다.
  • 완전 이진 트리: 마지막 레벨을 제외한 나머지 노드가 꽉차있어야 하며 마지막 레벨의 노드도 왼쪽부터 채워져야한다.
  • 포화 이진 트리: 마지막 레벨을 제외한 모든 노드가 2개의 자식 노드를 가진 이진트리 이다.

'개발 > 자료구조' 카테고리의 다른 글

Time Complexity Analysis  (0) 2020.09.08