Medio parcial-1

Operaciones de insercion y eliminacion en una lista simplemente enlazada

Fuente: Material del curso — Listas_Enlazadas_por_Alexander_Narvaez.pdf

listas-enlazadaspunterosinsercioneliminacionnodos

Enunciado

Dada la siguiente lista simplemente enlazada en C++:

head -> [7] -> [3] -> [10] -> NULL

Cada nodo tiene la estructura:

struct Nodo {
    int dato;
    Nodo* enlace;
};

Realice las siguientes operaciones en orden y dibuje el estado de la lista despues de cada una:

  1. Insertar el valor 5 al inicio de la lista.
  2. Insertar el valor 15 al final de la lista.
  3. Eliminar el nodo con valor 3.
  4. Insertar el valor 8 en la posicion 3 (indexada desde 0).

Para cada operacion:

  • (a) Muestre el estado de la lista resultante (formato: head -> [x] -> [y] -> ... -> NULL).
  • (b) Indique cuantas asignaciones de punteros son necesarias para completar la operacion.
  • (c) Indique la complejidad temporal de la operacion en terminos de O()O(\cdot), asumiendo que la lista tiene nn nodos.

Finalmente, responda: si se quisiera acceder al elemento en la posicion kk de la lista, cual seria la complejidad temporal? Compare esto con un arreglo y explique por que.