logo

Beillesztés

Az Insert funkció egy új elem hozzáadására szolgál egy bináris keresési fához a megfelelő helyen. Az Insert függvényt úgy kell megtervezni, hogy minden értéknél sértse a bináris keresési fa tulajdonságát.

  1. Foglalja le a memóriát a fához.
  2. Állítsa be az adatrészt az értékre, és állítsa a fa bal és jobb mutatóját, mutasson NULL-ra.
  3. Ha a beszúrandó elem a fa első eleme lesz, akkor ennek a csomópontnak a bal és jobb oldala NULL-ra mutat.
  4. Ellenkező esetben ellenőrizze, hogy az elem kisebb-e, mint a fa gyökéreleme, ha ez igaz, akkor rekurzívan hajtsa végre ezt a műveletet a gyökér bal oldalával.
  5. Ha ez hamis, akkor hajtsa végre ezt a műveletet rekurzív módon a gyökér jobb oldali részfájával.

Beszúrás (TREE, ITEM)

    1. lépés:HA FA = NULL
    Memória lefoglalása a TREE számára
    FA BEÁLLÍTÁSA -> ADATOK = TÉTEL
    SET TREE -> LEFT = FA -> RIGHT = NULL
    MÁS
    HA TÉTELADATOK
    Beszúrás (FA -> BAL, TÉTEL)
    MÁS
    Beszúrás (FA -> JOBBRA, TÉTEL)
    [HA VÉGE]
    [HA VÉGE]2. lépés:VÉGE

beillesztés a bináris keresőfába

C Funkció

 #include #include void insert(int); struct node { int data; struct node *left; struct node *right; }; struct node *root; void main () { int choice,item; do { printf('
Enter the item which you want to insert?
'); scanf('%d',&item); insert(item); printf('
Press 0 to insert more ?
'); scanf('%d',&choice); }while(choice == 0); } void insert(int item) { struct node *ptr, *parentptr , *nodeptr; ptr = (struct node *) malloc(sizeof (struct node)); if(ptr == NULL) { printf('can't insert'); } else { ptr -> data = item; ptr -> left = NULL; ptr -> right = NULL; if(root == NULL) { root = ptr; root -> left = NULL; root -> right = NULL; } else { parentptr = NULL; nodeptr = root; while(nodeptr != NULL) { parentptr = nodeptr; if(item data) { nodeptr = nodeptr -> left; } else { nodeptr = nodeptr -> right; } } if(item data) { parentptr -> left = ptr; } else { parentptr -> right = ptr; } } printf('Node Inserted'); } } 

Kimenet

 Enter the item which you want to insert? 12 Node Inserted Press 0 to insert more ? 0 Enter the item which you want to insert? 23 Node Inserted Press 0 to insert more ? 1