プログラムが要素をどのように挿入するかを視覚化するのに苦労しています。先生が教えてくれたコードは次のとおりです。
int arr[] = { 3, -2, 11, 7, 12, 1, 4, 5, 33, 13 };
int n = 10;
int cnt = 0;
typedef struct node*po;
struct node {
int data;
po left;
po right;
};
po ibd(int n) {
po holder;
if (n>0) {
int nl = n / 2;
int nr = n - nl - 1;
holder = new node;
holder->data = arr[cnt++];
holder->left = ibd(nl);
holder->right = ibd(nr);
return holder;
}
else {
return NULL;
}
}
残念ながら、要素をツリーに配置する方法を理解して視覚化することはできません。私が理解できることから、再帰的に分割統治アルゴリズムを使用して配列を2つの部分に分割し、要素を追加しますが、どの要素がルートになるかわかりません。すべてが挿入された後にツリーがどのように見えるかを視覚化するのを手伝ってくれる人はいますか?