logo

Vstavljanje

Funkcija Insert se uporablja za dodajanje novega elementa v binarno iskalno drevo na ustrezno lokacijo. Funkcija vstavljanja mora biti oblikovana tako, da mora vozlišče pri vsaki vrednosti kršiti lastnost binarnega iskalnega drevesa.

  1. Dodelite pomnilnik drevesu.
  2. Nastavite podatkovni del na vrednost in nastavite levi in ​​desni kazalec drevesa, kazalec na NULL.
  3. Če bo element, ki ga želite vstaviti, prvi element drevesa, bosta levo in desno od tega vozlišča kazala na NULL.
  4. V nasprotnem primeru preverite, ali je element manjši od korenskega elementa drevesa, če je to res, nato rekurzivno izvedite to operacijo z levo od korena.
  5. Če je to napačno, izvedite to operacijo rekurzivno z desnim poddrevesom korena.

Vstavi (DREVO, ELEMENT)

    Korak 1:ČE DREVO = NULL
    Dodeli pomnilnik za TREE
    NASTAVI DREVO -> PODATKI = POSTAVKA
    NASTAVI DREVO -> LEVO = DREVO -> DESNO = NULL
    DRUGEGA
    ČE PODATKI O PREDMETU
    Vstavi (DREVO -> LEVO, ELEMENT)
    DRUGEGA
    Vstavi (DREVO -> DESNO, POSTAVKA)
    [KONEC ČE]
    [KONEC ČE]2. korak:KONEC

vstavljanje v binarno iskalno drevo

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

Izhod

 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