typedef struct dt {
.....;
} Data;
typedef struct nd {
int id;
Data *data;
struct tm *_parent;
struct tm *_child[7];
} Node;
Node* findNode(int id, Node *tree) {
Node *p = tree;
if (id == p->_id)
return p;
for (int i = 0; i < 7; i++) {
if (id == p->_child[i]->_id) {
p = p->_child[i];
break;
} else if(p->_child[i] != NULL) {
findNode(id, p->_child[i]);
}
}
return p;
}
모든 노드가 0-7 개의 자식으로 구성된 다중 경로 트리가 있습니다. 어린이는 특별한 순서없이 추가되거나 제거 될 수 있습니다. 나는 주어진 ID가 트리를 검색하고 특정 노드에 대한 포인터를 반환하는 검색 알고리즘을 작성하려고합니다. 나는 행운을 빌지 않고 위와 같이 재귀 적으로 시도했다. 이 알고리즘을 재귀 적으로 구축 할 수 있습니까? 아니면 스택을 사용해야합니까?C 구현의 다중 경로 트리 검색 알고리즘
완전히 정리 된 덕분에! – ChrisGeo