ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

일반 트리 (General Tree)

 

정의

트리 자료구조의 가장 일반적인 형태입니다.

가장 자유로운 트리 구조로, 자식의 수에 제한이 없어 각 노드가 0개 이상의 자식 노드를 가질 수 있습니다.

트리 자료구조의 구조와 동일한 구조를 가지며, 계층 구조 표현에 주로 쓰입니다.

계층 구조(파일 시스템, 조직도, XML/JSON 구조 등)에 활용됩니다.

탐색·삭제가 비효율적이라, 성능 최적화가 필요한 경우에는 다른 트리 구조를 사용합니다.

 

시간 복잡도

정렬 규칙이 없어 연산 복잡도가 단순합니다.

 

탐색(Search): O(n)

- 일반 트리에는 정렬 규칙이 없음 → 원하는 값을 찾으려면 최악의 경우 모든 노드를 확인해야 함.

 

삽입(Insert): O(1) ~ O(n)

- 부모 노드를 이미 알고 있다면 자식으로 바로 붙이면 되므로 O(1).

- 부모를 찾는 과정까지 포함한다면 O(n) (탐색 후 삽입).

 

삭제(Delete): O(n)

- 삭제하려는 노드를 찾는 데 O(n)이 걸림.

- 찾은 후 삭제 자체는 빠르지만, 탐색 비용 때문에 전체는 O(n).

 

순회(Traversal): O(n)

- 모든 노드를 방문해야 하므로 당연히 O(n).

- (Preorder / Postorder / Level-order 모두 동일하게 O(n))


 

728x90