logo

Inserare

Funcția de inserare este utilizată pentru a adăuga un nou element într-un arbore de căutare binar în locația corespunzătoare. Funcția de inserare trebuie să fie proiectată în așa fel încât să încalce proprietatea arborelui de căutare binar la fiecare valoare.

  1. Alocați memorie pentru arbore.
  2. Setați partea de date la valoarea și setați indicatorul din stânga și din dreapta al arborelui, indicați spre NULL.
  3. Dacă elementul de inserat, va fi primul element al arborelui, atunci stânga și dreapta acestui nod vor indica NULL.
  4. În caz contrar, verificați dacă elementul este mai mic decât elementul rădăcină al arborelui, dacă acest lucru este adevărat, atunci efectuați recursiv această operație cu partea stângă a rădăcinii.
  5. Dacă acest lucru este fals, atunci efectuați această operație recursiv cu sub-arborele din dreapta al rădăcinii.

Inserare (ARBOC, ARTICOL)

    Pasul 1:DACĂ ARBOR = NUL
    Alocați memorie pentru TREE
    SET TREE -> DATE = ARTICOL
    SET TREE -> LEFT = TREE -> RIGHT = NULL
    ALTE
    DACA DATE ARTICOL
    Inserare (ARBOC -> STÂNGA, ARTICOL)
    ALTE
    Inserați (ARBOC -> DREAPTA, ARTICOL)
    [SFÂRȘITUL IF]
    [SFÂRȘITUL IF]Pasul 2:Sfârşit

inserarea în arborele binar de căutare

Funcția C

 #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'); } } 

Ieșire

 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