logo

Införande

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.

  1. Tilldela minnet för träd.
  2. Ställ in datadelen till värdet och ställ in trädets vänstra och högra pekare, peka på NULL.
  3. 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.
  4. 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.
  5. Om detta är falskt, utför sedan denna operation rekursivt med det högra underträdet av roten.

Infoga (TREE, ITEM)

    Steg 1:OM TRÄD = NULL
    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]Steg 2:SLUTET

infogning i binärt sökträd

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