Die Funktion „Einfügen“ wird verwendet, um an der entsprechenden Stelle ein neues Element in einen binären Suchbaum einzufügen. Die Einfügefunktion muss so gestaltet sein, dass sie bei jedem Wert die Eigenschaft des binären Suchbaums verletzt.
- Weisen Sie den Speicher für den Baum zu.
- Setzen Sie den Datenteil auf den Wert und setzen Sie den linken und rechten Zeiger des Baums auf NULL.
- Wenn das einzufügende Element das erste Element des Baums ist, zeigen die linke und rechte Seite dieses Knotens auf NULL.
- Überprüfen Sie andernfalls, ob das Element kleiner als das Wurzelelement des Baums ist. Wenn dies zutrifft, führen Sie diese Operation rekursiv mit der linken Seite der Wurzel aus.
- Wenn dies falsch ist, führen Sie diese Operation rekursiv mit dem rechten Teilbaum der Wurzel aus.
Einfügen (BAUM, ITEM)
Weisen Sie TREE Speicher zu
BAUM SETZEN -> DATEN = ITEM
SET BAUM -> LINKS = BAUM -> RECHTS = NULL
ANDERS
WENN ARTIKELDATEN
Einfügen (BAUM -> LINKS, ITEM)
ANDERS
Einfügen (BAUM -> RECHTS, ITEM)
[ENDE VON WENN]
[ENDE VON WENN]
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'); } }
Ausgabe
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