logo

Lisäys

Insert-toimintoa käytetään uuden elementin lisäämiseen binäärihakupuuhun sopivaan paikkaan. Insert-funktio tulee suunnitella siten, että sen tulee rikkoa binäärihakupuun ominaisuutta jokaisessa arvossa.

  1. Varaa muisti puulle.
  2. Aseta dataosalle arvo ja aseta puun vasen ja oikea osoitin kohtaan NULL.
  3. Jos lisättävä kohde on puun ensimmäinen elementti, tämän solmun vasen ja oikea puoli osoittavat kohtaan NULL.
  4. Muussa tapauksessa tarkista, onko kohde pienempi kuin puun juurielementti, jos tämä on totta, suorita tämä toiminto rekursiivisesti juuren vasemmalla puolella.
  5. Jos tämä on epätosi, suorita tämä toiminto rekursiivisesti juuri oikean alipuun kanssa.

Lisää (TREE, ITEM)

    Vaihe 1:JOS PUU = NULL
    Varaa muistia TREE:lle
    SET TREE -> DATA = TUOTE
    SET TREE -> LEFT = PUU -> OIKEA = NULL
    MUU
    JOS TUOTETIEDOT
    Lisää (PUU -> VASEN, KOHDE)
    MUU
    Lisää (PUU -> OIKEA, KOHDE)
    [JOS LOPPU]
    [JOS LOPPU]Vaihe 2:LOPPU

lisäys binäärihakupuuhun

C Toiminto

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

Lähtö

 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