Insert-funktionen används för att lägga till ett nytt element i ett binärt sökträd på lämplig plats. Insert-funktionen ska utformas på ett sådant sätt att den måste noden bryta mot egenskapen för binärt sökträd vid varje värde.
- Tilldela minnet för träd.
- Ställ in datadelen till värdet och ställ in trädets vänstra och högra pekare, peka på NULL.
- Om objektet som ska infogas kommer att vara det första elementet i trädet, kommer vänster och höger om denna nod att peka på NULL.
- Annars, kontrollera om objektet är mindre än rotelementet i trädet, om detta är sant, utför sedan denna operation rekursivt med vänster om roten.
- Om detta är falskt, utför sedan denna operation rekursivt med det högra underträdet av roten.
Infoga (TREE, ITEM)
Tilldela minne för TREE
SET TREE -> DATA = ARTIKEL
SÄTT TRÄD -> VÄNSTER = TRÄD -> HÖGER = NULL
ANNAN
IF ARTIKEL DATA
Infoga(TRÄD -> VÄNSTER, FÖREMÅL)
ANNAN
Infoga (TRÄD -> HÖGER, FÖREMÅL)
[SLUT PÅ OM]
[SLUT PÅ OM]
C Funktion
#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'); } }
Produktion
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