Tarea 5 semana 5
Revise la siguiente implementación interpretando línea por línea el código expuesto. Explique claramente cuál es su función e indique si su construcción es correcta o no. Encualquier caso, justifique su respuesta.
1- Procedo a explicar, según los entendido:
-Void apilar (struct tpila *pila, int element) {.
En esta parte se define la función “apilar” con losparámetros de la estructura de una pilai el tipo de elemento “elem”.
-Struct tpila *nuevo;
Aquí se declara una lista sin elementos y teniendo en cuenta que aparece con cabecera “nuevo”.-if((nuevo=struct tpila*) malloc(sizeof(struct tpila))) == NULL)
generar_error();
En este apartado se declara una condición a travez de un “if”, si se cumple que “nuevo” es la cabecera de laestructura de la pila y este es igual a “NULL”, es decir, que la pila sea vacía y con cabecera “nuevo”, entonces esto generará un error a través de “generar_error();”.
-else {
nuevo -> clave = elem;nuevo -> sig = pila -> sig;
pila -> sig = nuevo
}
}
Al observar el pseudocódigo, si no se cumple la condición “if”, entonces se hará lo que sigue en “else”, ya que en esta parte de la función seasigna a la cabecera el elemento “elem” (nuevo -> clave =elem;), que posteriormente a esto se asigna a la cabecera siguiente la posición “sig” de la pila a la cabecera “nuevo” (nuevo -> sig = pila ->sig;) y por último se reasigna la posición siguiente dela pila “sig” a “nuevo”. Con esto se le puede dar fin a la función.
Este pseudocódigo tiene la función de apilar en una pila elementosdefinidos, pero la construcción de esta función no es correcta, ya que se necesita definir en la pila la cabecera “nuevo”. Siendo así de de esta manera, faltaría esta parte en el código:
nuevo (struct tpila*) malloc(sizeof(struct tpila));
A este agregado, se tendría que eliminar la condicionante del “if” por que siempre se va a cumplir por el hecho de ser una pila fic.
2- Suponga que existen...
Regístrate para leer el documento completo.