logo

Insertion

La fonction d'insertion est utilisée pour ajouter un nouvel élément dans un arbre de recherche binaire à l'emplacement approprié. La fonction d'insertion doit être conçue de telle manière qu'elle doit violer la propriété de l'arbre de recherche binaire à chaque valeur.

  1. Allouez la mémoire pour l’arborescence.
  2. Définissez la partie données sur la valeur et définissez les pointeurs gauche et droit de l'arborescence, pointez sur NULL.
  3. Si l'élément à insérer sera le premier élément de l'arborescence, alors la gauche et la droite de ce nœud pointeront vers NULL.
  4. Sinon, vérifiez si l'élément est inférieur à l'élément racine de l'arborescence, si cela est vrai, puis effectuez cette opération de manière récursive avec la gauche de la racine.
  5. Si c'est faux, alors effectuez cette opération de manière récursive avec le sous-arbre droit de la racine.

Insérer (ARBRE, ARTICLE)

    Étape 1:SI ARBRE = NULL
    Allouer de la mémoire pour TREE
    DÉFINIR L'ARBRE -> DONNÉES = ARTICLE
    DÉFINIR ARBRE -> GAUCHE = ARBRE -> DROITE = NULL
    AUTRE
    SI DONNÉES DE L'ARTICLE
    Insérer (ARBRE -> GAUCHE, ARTICLE)
    AUTRE
    Insérer (ARBRE -> DROITE, ARTICLE)
    [FIN DE SI]
    [FIN DE SI]Étape 2:FIN

insertion dans l'arbre de recherche binaire

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

Sortir

 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