logo

Inserción

La función Insertar se utiliza para agregar un nuevo elemento en un árbol de búsqueda binario en la ubicación adecuada. La función de inserción debe diseñarse de tal manera que el nodo debe violar la propiedad del árbol de búsqueda binario en cada valor.

  1. Asigne la memoria al árbol.
  2. Establezca la parte de datos en el valor y establezca los punteros izquierdo y derecho del árbol, apunte a NULL.
  3. Si el elemento que se va a insertar será el primer elemento del árbol, entonces la izquierda y la derecha de este nodo apuntarán a NULL.
  4. De lo contrario, verifique si el elemento es menor que el elemento raíz del árbol; si esto es cierto, realice esta operación de forma recursiva con la izquierda de la raíz.
  5. Si esto es falso, realice esta operación de forma recursiva con el subárbol derecho de la raíz.

Insertar (ÁRBOL, ARTÍCULO)

    Paso 1:SI ÁRBOL = NULO
    Asignar memoria para TREE
    ESTABLECER ÁRBOL -> DATOS = ARTÍCULO
    ESTABLECER ÁRBOL -> IZQUIERDA = ÁRBOL -> DERECHA = NULO
    DEMÁS
    SI DATOS DEL ARTÍCULO
    Insertar(ÁRBOL -> IZQUIERDA, ARTÍCULO)
    DEMÁS
    Insertar(ÁRBOL -> DERECHA, ARTÍCULO)
    [FIN DE SI]
    [FIN DE SI]Paso 2:FIN

inserción en el árbol de búsqueda binaria

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

Producción

 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