Vous êtes sur la page 1sur 3

Estructura de Datos Pilas.

Daniel Rivera

ESTRUCTURA DE DATOS
Instituto IACC
06 de diciembre de 2014

Estructura de Datos
Revise la siguiente implementacion interpretando linea por linea el
codigo expuesto. Explique claramente cual es su funcion e indique si
su construccion es correcta o no. En cualquier caso, justifique su
respuesta.
1 Procedo a explicar, segn los entendido:
-Void apilar (struct tpila *pila, int element) {.
En esta parte se define la funcin apilar con los parmetros 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 condicin a travez de un if, si se cumple que nuevo es la
cabecera de la estructura de la pila y este es igual a NULL, es decir, que la pila sea vaca y con
cabecera nuevo, entonces esto generar un error a travs de generar_error();.
-else {
nuevo -> clave = elem;
nuevo -> sig = pila -> sig;
pila -> sig = nuevo
}
}
Al observar el pseudocdigo, si no se cumple la condicin if, entonces se har lo que sigue en
else, ya que en esta parte de la funcin se asigna a la cabecera el elemento elem (nuevo ->
clave =elem;), que posteriormente a esto se asigna a la cabecera siguiente la posicin sig de la
pila a la cabecera nuevo (nuevo -> sig = pila -> sig;) y por ltimo se reasigna la posicin
siguiente dela pila sig a nuevo. Con esto se le puede dar fin a la funcin.
Este pseudocdigo tiene la funcin de apilar en una pila elementos definidos, pero la
construccin de esta funcin no es correcta, ya que se necesita definir en la pila la cabecera
nuevo. Siendo as de de esta manera, faltara esta parte en el cdigo:
nuevo (struct tpila *) malloc(sizeof(struct tpila));
A este agregado, se tendra 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 dos pilas de datos. La primera contiene los


nmeros enteros impares entre 1 y 100 y, la segunda, los nmeros
enteros pares entre 1 y 100. Indique de que forma podemos
fusionar ambas pilas en una sola, ordenados sus nmeros de mayor
a menor y que tipo de implementacion utilizaria para ello.
Confeccione un algoritmo en pseudocodigo o en un lenguaje de
programacion adecuado, que realice esta tarea.
Desarrollo:
Void enumerar(struct tpila *par, struct tpila *impar, struct tpila*pila, int*elem1, int*elem2)..
En la impotencia de atraso, entrego mi trabajo en estas circunstancias.
Perdn el atraso profesor.
Saludos.
Mi trabajo lo hice desde mi table, pegando el documento en el Word de Iacc..

Vous aimerez peut-être aussi