a
/ \
a a
/\ /\
a c a f
/\ /\
b d e g
나는이 연결된 구조로 표현 위처럼 보이는 나무 :리프 노드에 루트에서 모든 경로를 얻기
class Node
{
Node* leftChild;
Node* rightChild;
char data;
}
class Tree
{
Node* root;
}
내 목표는 잎에 루트에서 모든 경로를 찾을 수 있습니다 노드.
내 트리 탐색 알고리즘은 다음과 같습니다
void inorder()
{
in(root);
}
void in(CharNode* currentNode)
{
if(currentNode)
{
in(currentNode->leftChild);
cout << currentNode->data << endl;
in(currentNode->rightChild);
}
}
내가 이것을 실행할 때, 그림과 같이 나무가 건설되고 긍정적입니다. 나는 그것을 시험했다. 그러나 왜 내 트래버스 세분화 오류가 발생하는지 파악할 수 없습니다.
내가 얻을 출력은 다음과 같습니다
b
Segmentation fault.
나는 작은 높이 나무에 테스트 한, 그것은 작동합니다. 그러나 어떤 이유로 그것은 2보다 큰 높이의 나무에서는 작동하지 않습니다. 나무가 잘못되어 있다고 생각했습니다. 나는 각 부모, 왼쪽 자식 및 오른쪽 자식을 인쇄하고 그림과 같이 인쇄했습니다. . 그래서 그것은 순회 알고리즘입니다.
순회 알고리즘은 나에게 잘 보인다. 컴파일 가능한 예제를 게시하면 오류가 빨리 발견 될 것이라고 확신합니다. – jahhaj
'CharNode' 란 무엇입니까? 너는 나무를 올바르게 짓고 있니? – Donotalo
@Donotalo, 그는 틀림 없습니다.하지만 그가 틀렸다고 생각합니다. – jahhaj