先着順で整数を格納するツリーを作成したいと考えています。ルートに格納される最初の要素、次にルートの左隣、右、というように続きます。整数を格納するために、入力として整数配列を与えてみました。
どうすればそれができるのか、私にはほとんどわかりません。ノードを連続して挿入しようとしましたが、先に進めません。一時ノードを作成し、ルートの左側に要素を挿入してから、右側に要素を挿入しました。一時ノードが左側のノードになりますが、右側にノードを挿入できません。
いろいろやってみましたが、行き詰まると思ったので別の方法を試してみました。
実際、ソートされていないツリーで k に等しい 2 つのノードの追加を見つけるという課題が与えられました。私はそれに対する解決策を見つけましたが、問題はソートされていないツリーを作成する方法でした。
void insert1( tree * root,int arr[],int n) {
if (n!=0)
root->data=arr[0];
tree * temp;
temp=root;
for(i=1;i!=n;i++) {
if(i<n) {
temp->l->data=arr[i];
i++;
}
if(i<n) {
temp->r->data=arr[i];
i++;
}
temp=temp->l;
}