【发布时间】:2013-10-25 11:22:56
【问题描述】:
我有一个表示二叉树的 C 结构:
struct btree {
char *word;
int frequency;
struct btree *left;
struct btree *right;
};
我想创建一个函数btree_list(struct btree*),它返回传递给它的二叉树中所有btree 对象的数组。顺序无所谓。
以下是此功能如何工作的示例:
struct btree *T = populate_with_random_values();
struct btree *entries = (struct btree*) malloc(sizeof(struct btree) * btree_size(T));
entries = btree_list(T);
while (*entries != NULL) {
printf("There are %d occurences of the word %s", entries->frequency, entries->word);
entries++;
}
对于entries、E->left 和E->right 中的每个元素E,也应设置为NULL,因为它们在技术上并未被使用。我将如何实施?
【问题讨论】:
-
所以你知道,两行malloc
entries数组,并立即在下一行泄漏所有内存,这将覆盖刚刚收到的地址btree_list的返回值.所以我希望它不会那样那样工作。
标签: c algorithm binary-tree