두 갈래 나무 위
나무.
두 갈래 나무
두 갈래 나무는 말 그대로 각 노드에 최대 두 개의'포크'가 있는데 그것이 바로 두 개의 자 노드인데 각각 왼쪽 노드와 오른쪽 자 노드이다.
두 갈래 나무가 가득하다
잎 노드는 모두 맨 밑에 있는데 잎 노드를 제외하고 각 노드는 좌우 두 개의 자 노드가 있는데 이런 두 갈래 나무를 만 두 갈래 나무라고 부른다.
완전 두 갈래 나무
잎 노드는 모두 맨 아래 두 층에 있고 마지막 층의 잎 노드는 모두 왼쪽으로 배열되며 마지막 층을 제외하고 다른 층의 노드 개수는 모두 최대에 달한다. 이런 두 갈래 나무를 완전 두 갈래 나무라고 부른다.
어떻게 두 갈래 나무를 표현합니까?
두 갈래 나무가 두루 다니다
위조 코드
:
preOrder(r) = print r->preOrder(r->left)->preOrder(r->right)
:
inOrder(r) = inOrder(r->left)->print r->inOrder(r->right)
:
postOrder(r) = postOrder(r->left)->postOrder(r->right)->print r
코드
void preOrder(Node* root) {
if (root == null) return;
print root // , root
preOrder(root->left);
preOrder(root->right);
}
void inOrder(Node* root) {
if (root == null) return;
inOrder(root->left);
print root // , root
inOrder(root->right);
}
void postOrder(Node* root) {
if (root == null) return;
postOrder(root->left);
postOrder(root->right);
print root // , root
}
시간 복잡도: O(n)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.