logo

Umetanje

Funkcija umetanja koristi se za dodavanje novog elementa u stablo binarnog pretraživanja na odgovarajuće mjesto. Funkcija umetanja mora biti dizajnirana na takav način da čvor mora kršiti svojstvo stabla binarnog pretraživanja pri svakoj vrijednosti.

  1. Dodijelite memoriju stablu.
  2. Postavite podatkovni dio na vrijednost i postavite lijevi i desni pokazivač stabla, pokazivač na NULL.
  3. Ako će stavka koju treba umetnuti biti prvi element stabla, tada će lijevo i desno od ovog čvora pokazivati ​​na NULL.
  4. Inače, provjerite je li stavka manja od korijenskog elementa stabla, ako je to točno, tada rekurzivno izvedite ovu operaciju s lijevom stranom korijena.
  5. Ako je ovo netočno, izvedite ovu operaciju rekurzivno s desnim podstablom korijena.

Umetni (STABLO, STAVKA)

    Korak 1:AKO STABLO = NULL
    Dodijelite memoriju za TREE
    POSTAVITE STABLO -> PODACI = STAVKA
    POSTAVITE STABLO -> LIJEVO = STABLO -> DESNO = NULL
    DRUGO
    AKO PODACI STAVKE
    Umetni (STABLO -> LIJEVO, STAVKA)
    DRUGO
    Umetni (STABLO -> DESNO, STAVKA)
    [KRAJ AKO]
    [KRAJ AKO]Korak 2:KRAJ

umetanje u stablo binarnog pretraživanja

C funkcija

 #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'); } } 

Izlaz

 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