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.
- Allouez la mémoire pour l’arborescence.
- Définissez la partie données sur la valeur et définissez les pointeurs gauche et droit de l'arborescence, pointez sur NULL.
- 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.
- 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.
- 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)
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]
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