[자료구조] PHP로 이진 트리 구현
·
CS/자료구조 & 알고리즘
1. 이진 트리의 표현배열로 표현루트 노드의 인덱스를 0으로 하고 왼쪽 자식은 부모 노드의 인덱스 i에 대해 2*i+1, 오른쪽 노드는 부모 노드 인덱스 i에 대해 2*i+2배열 항목 사이에 빈칸이 발생하지 않는 포화 이진트리나 완전 이진 트리에 가장 적합위의 두 트리가 아닌 경우 메모리 낭비가 발생할 수 있고 배열의 크기에 따라 트리의 높이가 제한 될 수 있음연결 리스트로 표현각 노드당 두 개의 링크릴 가져 오른쪽 자식 노드와 왼쪽 자식 노드를 가리키도록 함필요한 만큼만 메모리를 사용할 수 있고 트리 구조를 시작적으로 표현 가능, 삭제와 삽입이 빈번한 이진 트리에 적합포인터를 사용해야 하므로 구현이 까다롭고 탐색 속도는 배열로 표현하는 것보다 느릴 수 있음 2. 연결 리스트로 표현TreeNode이진 트..
[자료구조] 트리 Tree(종류, 순회)
·
CS/자료구조 & 알고리즘
1. 트리 Tree 노드와 간선으로 이루어진 비선형적 구조사이클이 없음 -> 한 노드에서 출발해 다른 노드를 거쳐 다시 그 출발점으로 돌아오는 경로가 없음시작점인 루트 노드에서 모든 모든 노드에 도달할 수 있음더이상 자식이 없는 노드는 리프(leaf) 노드라고 함 2. 트리 종류일반 트리(General Tree)각 노드가 자식 노드를 몇 개나 가질 수 있는 지에 대한 제한이 없음이진 트리(Binary Tree)각 노드가 최대 두 개의 자식을 가지는 트리. 자식 노드가 왼쪽 노드와 오른쪽 노드로 구분됨 3. 이진 트리 종류포화 이진 트리(Full Binary Tree)리프 노드를 제외한 모든 노드가 자식 노드를 2개씩 가진 트리트리의 깊이를 통해 노드의 수를 계산 할 수 있음(깊이가 3이라면, 2^3-1..