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 将搜索树并返回一个指向特定节点的指针。我已经尝试像上面那样递归地做它,但没有太多运气。实际上可以递归地构建这个算法还是我还需要使用堆栈?