1

先着順で整数を格納するツリーを作成したいと考えています。ルートに格納される最初の要素、次にルートの左隣、右、というように続きます。整数を格納するために、入力として整数配列を与えてみました。

どうすればそれができるのか、私にはほとんどわかりません。ノードを連続して挿入しようとしましたが、先に進めません。一時ノードを作成し、ルートの左側に要素を挿入してから、右側に要素を挿入しました。一時ノードが左側のノードになりますが、右側にノードを挿入できません。

いろいろやってみましたが、行き詰まると思ったので別の方法を試してみました。

実際、ソートされていないツリーで 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;
    }
4

1 に答える 1