我想实现对现有二叉树执行前序、中序和后序遍历的函数。
然后应该通过预定义的测试功能显示这些遍历
这是我到目前为止的预购遍历
uint64_t i = 0;
int *binarytree_prefix(binarytree *tree) {
uint64_t *prefixArray = malloc(inputArrayLength_helper * sizeof(uint64_t));
prefixArray[i] = tree->value;
i++;
if (tree->left != NULL) {
return (binarytree_prefix(tree->left));
}
if (tree->right != NULL) {
return (binarytree_prefix(tree->right));
}
}
我的想法是,它将当前节点的值插入到数组中,然后增加数组中的位置并在左侧和右侧树上进行递归,但这不起作用。我希望有人能够帮助我让它运行
我所做的是使用前序遍历进行深度优先搜索,然后包含数组以用当前值填充它
main 中的测试函数:
int *prefixArray = bintree_prefix(tree);
printf("Prefix notation : ");
for(uint64_t i = 0; i < inputArrayLength; i++) {
printf(" %d", prefixArray[i]);
}
printf("\n");
free(prefixArray);