트리 - 스레드 이진 트리
·
자료구조
# [C언어로 쉽게 풀어쓴 자료구조(천인국)]를 공부하고 주요 내용을 정리하고자 작성하는 글입니다.# 해당 게시글에 대한 모든 피드백 환영합니다. // 해당 단원인 '트리'의 목차가 업데이트 될 예정입니다.이전 글: 트리 - 이진 트리의 노드 개수/ 단말 노드 개수/ 높이 구하기 스레드 이진 트리 Threaded Binary Tree스레드 이진 트리가 무엇인지 알기 전에 왜 '스레드 이진트리'가 나오게 되었는지 먼저 생각해보자. 전위/중위/후위/레벨 순회 등 이진트리를 순회할 때 NULL 링크를 만나면 왼쪽 또는 오른쪽 자식 노드가 없음으로 이해해왔다. 즉 NULL 링크(또는 포인터) 는 자식노드의 유무를 알려주는 유일한 도구이다.  그런데, 이러한 NULL 포인터가 이진트리 내에 몇 개가 존재하는지 따..
트리 - 반복적 순회(전위/중위/후위 순회 스택으로 이해하기)
·
자료구조
# [C언어로 쉽게 풀어쓴 자료구조(천인국)]를 공부하고 주요 내용을 정리하고자 작성하는 글입니다. # 해당 게시글에 대한 모든 피드백 환영합니다. 이전 글: 트리-이진트리 순회 반복적 순회 스택 stack 자료구조와 for문을 이용해 트리를 순회하는 방식이다. 이전까지는 순환 호출을 이용해 순회를 했다면 반복적 순회는 for문과 스택을 이용한다. 전위/중위/후위 순회 모두 반복적 순회를 이용해 구현할 수 있다. 이전 글에서 예시로 들었던 아래의 트리를 이용해 전위/중위/후위 반복적 순회를 모두 살펴보자. 스택 그림만으로 방문 순서 알아내기 *pseudo-code: 프로그래밍 언어는 아니지만 유사한 모양으로 알고리즘의 원리를 설명할때 사용가능 1. 전위 순회 // Pseudo Code preorder_i..
트리 - 이진트리 순회
·
자료구조
# [C언어로 쉽게 풀어쓴 자료구조(천인국)]를 공부하고 주요 내용을 정리하고자 작성하는 글입니다. # 해당 게시글에 대한 모든 피드백 환영합니다. 이전글: 트리-이진트리 정의/성질/분류/표현법 순회 traversal 이진트리에 속하는 모든 노드를 한 번씩 방문하여 노드가 가지고 있는 데이터를 목적에 맞게 처리하는 것 전위 순회(preorder traversal) 중위 순회(inorder traversal) 후위 순회(postorder traversal) 전위 순회 preorder traversal 루트 노드 → 왼쪽 서브트리 → 오른쪽 서브트리 이때 서브트리도 하나의 트리이므로, 그 트리 안에서 위의 과정을 또 거치면 된다. 쉽게 생각하면 왼쪽으로 계속 가다가 막히면 오른쪽으로 가는 방법이다. 예를 들..