既存のバイナリ ツリーの前後のトラバーサルを実行する関数を実装したいと思います。
これらのトラバーサルは、定義済みのテスト関数によって表示される必要があります
ここに私がこれまでにプレオーダートラバーサルのために得たものがあります
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));
}
}
現在のノードの値を配列に挿入し、配列内の位置をインクリメントし、左側のツリーと右側のツリーで再帰を実行すると考えましたが、これは機能しません。誰かがそれを実行するのを手伝ってくれることを願っています
私がしたことは、事前注文トラバーサルを使用した深さ優先検索であり、現在の値で埋めるために配列を含めました
メイン内のテスト関数:
int *prefixArray = bintree_prefix(tree);
printf("Prefix notation : ");
for(uint64_t i = 0; i < inputArrayLength; i++) {
printf(" %d", prefixArray[i]);
}
printf("\n");
free(prefixArray);