트리 - 레벨 순회 알고리즘
·
자료구조
# [C언어로 쉽게 풀어쓴 자료구조(천인국)]를 공부하고 주요 내용을 정리하고자 작성하는 글입니다. # 해당 게시글에 대한 모든 피드백 환영합니다. 이전 글: 트리 - 반복적 순회(스택으로 이해하기) 레벨 순회 level order 각 노드를 레벨 순으로 검사하는 순회 방법이다. 루트 노드의 레벨이 1이고, 아래로 내려갈수록 레벨은 증가한다. 동일한 레벨의 경우에는 좌->우로 방문한다. 레벨 순회에 적합한 자료구조는 큐 Queue 이다. 큐를 이용해서 레벨 순회를 진행하면 다음과 같다. 트리의 루트 노드를 우선 삽입한다. 그 다음부터는 큐가 공백 상태가 될 때까지 아래의 과정을 반복한다. 큐에서 dequeue를 한 다음, 삭제된 노드의 왼쪽 서브트리의 루트노드와 오른쪽 서브트리의 루트노드를 순서대로 큐에..
트리 - 반복적 순회(전위/중위/후위 순회 스택으로 이해하기)
·
자료구조
# [C언어로 쉽게 풀어쓴 자료구조(천인국)]를 공부하고 주요 내용을 정리하고자 작성하는 글입니다. # 해당 게시글에 대한 모든 피드백 환영합니다. 이전 글: 트리-이진트리 순회 반복적 순회 스택 stack 자료구조와 for문을 이용해 트리를 순회하는 방식이다. 이전까지는 순환 호출을 이용해 순회를 했다면 반복적 순회는 for문과 스택을 이용한다. 전위/중위/후위 순회 모두 반복적 순회를 이용해 구현할 수 있다. 이전 글에서 예시로 들었던 아래의 트리를 이용해 전위/중위/후위 반복적 순회를 모두 살펴보자. 스택 그림만으로 방문 순서 알아내기 *pseudo-code: 프로그래밍 언어는 아니지만 유사한 모양으로 알고리즘의 원리를 설명할때 사용가능 1. 전위 순회 // Pseudo Code preorder_i..