logo

Innsetting

Insert-funksjonen brukes til å legge til et nytt element i et binært søketre på passende sted. Insert-funksjonen skal utformes på en slik måte at den må noden bryte egenskapen til binært søketre ved hver verdi.

  1. Tildel minnet for treet.
  2. Sett datadelen til verdien og sett venstre og høyre peker på treet, pek på NULL.
  3. Hvis elementet som skal settes inn, vil være det første elementet i treet, vil venstre og høyre for denne noden peke til NULL.
  4. Ellers, sjekk om elementet er mindre enn rotelementet til treet, hvis dette er sant, utfør denne operasjonen rekursivt med venstre for roten.
  5. Hvis dette er usant, utfør denne operasjonen rekursivt med det høyre undertreet til roten.

Sett inn (TRE, ITEM)

    Trinn 1:IF TREE = NULL
    Tildel minne for TREE
    SETTTRE -> DATA = VARE
    SET TRE -> VENSTRE = TRE -> HØYRE = NULL
    ELLERS
    IF ART DATA
    Sett inn(TRE -> VENSTRE, ITEM)
    ELLERS
    Sett inn (TRE -> HØYRE, ITEM)
    [SLUT PÅ HVIS]
    [SLUT PÅ HVIS]Steg 2:SLUTT

innsetting i binært søketre

C funksjon

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

Produksjon

 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