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.
- Tildel minnet for treet.
- Sett datadelen til verdien og sett venstre og høyre peker på treet, pek på NULL.
- 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.
- Ellers, sjekk om elementet er mindre enn rotelementet til treet, hvis dette er sant, utfør denne operasjonen rekursivt med venstre for roten.
- Hvis dette er usant, utfør denne operasjonen rekursivt med det høyre undertreet til roten.
Sett inn (TRE, ITEM)
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]
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