logo

Einfügen

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.

  1. Weisen Sie den Speicher für den Baum zu.
  2. Setzen Sie den Datenteil auf den Wert und setzen Sie den linken und rechten Zeiger des Baums auf NULL.
  3. Wenn das einzufügende Element das erste Element des Baums ist, zeigen die linke und rechte Seite dieses Knotens auf NULL.
  4. Ü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.
  5. Wenn dies falsch ist, führen Sie diese Operation rekursiv mit dem rechten Teilbaum der Wurzel aus.

Einfügen (BAUM, ITEM)

    Schritt 1:WENN BAUM = NULL
    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]Schritt 2:ENDE

Einfügen in den binären Suchbaum

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