【发布时间】:2014-06-21 00:58:25
【问题描述】:
我现在正在执行一项实验室任务来制作一个 Hangman 游戏,并且我正在尝试开发一个特定的功能。我有一个关联数组,它只是一个二叉树,其中每个节点都是一个键/值对,键是一个字符串,值是一个字符串向量。这些功能对我的问题并不重要。我需要知道的是……
我需要返回一个指向包含树中最多元素的向量的指针。我试图通过深度优先搜索找到一种方法来做到这一点,但我无法确定要比较什么以及如何跟踪所有内容。
谁能给我伪代码或如何做到这一点的想法?
编辑:这是我目前的算法。
GENERIC_VECTOR* find_greatest(Node* root, MYSTRING* pattern) {
if(root != NULL) {
GENERIC_VECTOR* left = find_greatest(root->left, pattern);
GENERIC_VECTOR* right = find_greatest(root->right, pattern);
int sizeL = generic_vector_size(*left);
int sizeR = generic_vector_size(*right);
int sizeT = generic_vector_size(root->data->value);
if(sizeL > sizeR) {
if(sizeL > sizeT) {
mystring_destroy(pattern);
*pattern = mystring_copy(root->left->data->key);
return left;
} else {
mystring_destroy(pattern);
*pattern = mystring_copy(root->data->key);
return &(root->data->value);
}
} else {
if(right != NULL) {
if(sizeR > sizeT) {
mystring_destroy(pattern);
*pattern = mystring_copy(root->right->data->key);
return right;
} else {
mystring_destroy(pattern);
*pattern = mystring_copy(root->data->key);
return &(root->data->value);
}
} else {
mystring_destroy(pattern);
*pattern = mystring_copy(root->data->key);
return &(root->data->value);
}
}
} else return NULL;
}
【问题讨论】:
-
你的努力在哪里???
-
我花在这上面的 8 个小时还不够吗?如果我没有尝试过我能想到的一切,我就不会在这里,所以也许你可以给我一些实际的帮助?
-
@Darin... 在我检查您的努力之前,我该如何帮助您。请张贴您 8 小时的努力。
-
更新了我当前的算法。
标签: c algorithm binary-tree associative-array depth-first-search