logo

Inserció

La funció d'inserció s'utilitza per afegir un element nou a un arbre de cerca binari a la ubicació adequada. La funció d'inserció s'ha de dissenyar de tal manera que el node ha de violar la propietat de l'arbre de cerca binari a cada valor.

  1. Assigna la memòria per a l'arbre.
  2. Estableix la part de dades al valor i estableix el punter esquerre i dret de l'arbre, apunta a NULL.
  3. Si l'element a inserir serà el primer element de l'arbre, llavors l'esquerra i la dreta d'aquest node apuntaran a NULL.
  4. En cas contrari, comproveu si l'element és inferior a l'element arrel de l'arbre, si això és cert, feu aquesta operació recursivament amb l'esquerra de l'arrel.
  5. Si això és fals, feu aquesta operació de forma recursiva amb el subarbre dret de l'arrel.

Insereix (ARBRE, ARTICLE)

    Pas 1:SI ARBRE = NULL
    Assignar memòria per a TREE
    SET ARBRE -> DADES = ELEMENT
    SET ARBRE -> ESQUERRA = ARBRE -> DRET = NULL
    ALTRES
    SI DADES DE L'ART
    Insereix (ARBRE -> ESQUERRA, ELEMENT)
    ALTRES
    Insereix (ARBRE -> DRET, ARTICLE)
    [FI DE SI]
    [FI DE SI]Pas 2:FINAL

inserció a l'arbre de cerca binari

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

Sortida

 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