Maximize Your Potential

CSKnowledge

[CS지식 공부하기] 알고리즘 - 트리 자료구조의 속성과 활용 및 이진 트리 순회 방법: 중위, 전위, 후위 순회에 대한 이해

maxworld 2024. 8. 8. 10:54
728x90
반응형

[알고리즘] 이해하기 쉬운 트리 자료구조의 속성과 활용

이해하기 쉬운 트리 자료구조의 속성과 활용

이해하기 쉬운 트리 자료구조의 속성과 활용



트리 자료구조는 계층적인 구조를 표현하는 데 사용되며, 단방향 그래프의 한 종류로 볼 수 있습니다. 그 모양이 나무와 유사하여 트리라고 불립니다. 이 구조는 하나의 뿌리(root)에서부터 여러 가지 가지(branch)가 뻗어나가는 형태를 가집니다. 그리고 데이터를 순차적으로 나열하는 선형 구조가 아니기 때문에 비선형 구조입니다. 또한, 트리 자료구조는 아래와 같은 여러 가지 속성을 가지고 있습니다.

 

  • 루트(Root): 트리의 가장 위에 있는 노드로, 다른 모든 노드들은 이 루트 노드에서부터 시작합니다.
  • 노드(Node): 트리의 각 요소를 나타냅니다. 노드는 데이터를 저장하고 다른 노드와 연결된 엣지(Edge)를 가질 수 있습니다.
  • 엣지(Edge): 노드와 노드를 연결하는 선입니다.
  • 키(Key): 노드에 저장된 값이나 데이터를 의미합니다.
  • 부모(Parent): 특정 노드의 바로 위에 있는 노드를 의미합니다.
  • 자식(Children): 특정 노드의 바로 아래에 있는 노드들을 의미합니다.
  • 형제(Siblings): 같은 부모를 가진 노드들을 의미합니다.
  • 잎 노드(Leaf Node): 자식이 없는 노드를 의미합니다.
  • 트리의 높이(Height of the Tree): 트리의 높이는 루트 노드에서 가장 멀리 떨어진 잎 노드까지의 경로에 있는 엣지의 수를 의미합니다

 

트리구조는 자료구조에서 자주 나오는 유형이기 때문에 숙지하는 것이 필요합니다!!~~!

트리 자료구조는 많은 알고리즘과 자료구조에서 사용되며, 그 중에서도 이진 트리(Binary Tree)가 자주 사용됩니다. 이진 트리는 각 노드가 최대 두 개의 자식을 가질 수 있는 트리 구조입니다. 이러한 트리 속성들을 이용해서 다양한 알고리즘 및 데이터 구조를 구현할 수 있습니다.

트리는 계층적인 구조를 표현하고 데이터를 효율적으로 조직화하는 데 사용되며, 특히 데이터베이스, 파일 시스템, 그래프 알고리즘 등 다양한 분야에서 활용됩니다. 트리 자료구조의 이러한 속성과 활용 방법은 다양한 컴퓨터 과학 및 소프트웨어 엔지니어링 분야에서 중요한 개념 중 하나입니다.

 

 

이진 트리 순회 방법: 중위, 전위, 후위 순회에 대한 이해

이진 트리는 컴퓨터 과학에서 널리 사용되는 중요한 자료 구조 중 하나입니다. 각 노드가 최대 두 개의 자식 노드를 가질 수 있는 이진 트리는 데이터를 효율적으로 저장하고 탐색하는 데 사용됩니다. 이진 트리를 순회하는 것은 트리의 모든 노드를 방문하는 과정으로, 그 중에서도 중위, 전위, 후위 순회는 가장 흔히 사용되는 방법입니다. 따라서 각 서브트리를 찾을때는 순회방식을 채택하여 알고리즘을 짜면 됩니다. ㅎㅎ

순회방식은 제목과 같이 총 3가지가 있습니다.

이진 트리 순회 방법: 중위, 전위, 후위 순회

 

 

  • 중위 순회 (Inorder) 

중위 순회는 왼쪽 하위 트리의 모든 노드를 먼저 방문한 후에 루트 노드를 방문하고, 마지막으로 오른쪽 하위 트리의 모든 노드를 방문하는 방식입니다. 이를 통해 트리의 노드를 오름차순으로 순회할 수 있습니다. 이러한 특성은 이진 탐색 트리(BST)에서 데이터를 검색하거나 정렬된 데이터를 출력하는 데 유용하게 활용됩니다.


즉 왼 -> 루 -> 오 라고 생각하시면 됩니다. 그림에서 보시면 5 - 12  - 6 - 1 - 9 순으로 가게 됩니다.

 

  •  전위 순회 (Preorder) 

전위 순회는 루트 노드를 먼저 방문한 후에 왼쪽 하위 트리의 모든 노드를 방문하고, 마지막으로 오른쪽 하위 트리의 모든 노드를 방문하는 방식입니다. 이를 통해 트리의 구조를 자세히 살펴볼 수 있습니다. 전위 순회는 트리를 복제하거나 트리의 깊이를 계산하는 등의 작업에 유용하게 활용됩니다.


즉 루트 -> 왼쪽 -> 오른쪽 노드를 방문합니다. 1 -> 12 -> 5 -> 6 -> 9 순으로 가게 됩니다.


  • 후위 순회 (Postorder) 

후위 순회는 왼쪽 하위 트리의 모든 노드를 먼저 방문한 후에 오른쪽 하위 트리의 모든 노드를 방문하고, 마지막으로 루트 노드를 방문하는 방식입니다. 이를 통해 트리의 노드를 내림차순으로 순회할 수 있습니다. 후위 순회는 트리의 높이를 계산하거나 트리의 노드를 삭제하는 등의 작업에 유용하게 활용됩니다.

즉 왼쪽 - 오른쪽  - 루트노드 순으로 가게 됩니다. 5 -> 6 - > 12 -> 9 -> 1 순으로 가게 됩니다.

이러한 이진 트리의 순회 방법은 검색 엔진 최적화(SEO)에도 중요한 영향을 미칩니다. 웹 페이지의 내용을 검색 엔진이 효과적으로 수집하고 색인화하는 데는 특정 키워드를 중요한 위치에 배치하는 것이 중요합니다. 이와 유사하게, 중위, 전위, 후위 순회는 트리의 노드를 방문하는 순서를 조정함으로써 효과적으로 검색 및 탐색을 수행할 수 있습니다. 또한, 이러한 순회 방법은 알고리즘의 성능과 효율성에도 영향을 미칩니다.

따라서 이진 트리의 순회 방법을 이해하고 올바르게 구현하는 것은 프로그래밍 및 정보 검색 분야에서 핵심적인 역할을 합니다. 이를 통해 효율적인 데이터 구조 및 검색 알고리즘을 개발하고 최적화할 수 있습니다.