3
Estructura de Datos Pilas. Daniel Rivera ESTRUCTURA DE DATOS Instituto IACC 06 de diciembre de 2014

Estructura de Datos Pilas

Embed Size (px)

DESCRIPTION

Ramo Estructura de datos.

Citation preview

Title of Paper Goes Here

Estructura de Datos Pilas.Daniel RiveraESTRUCTURA DE DATOSInstituto IACC06 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.

1. Suponga que existen dos pilas de datos. La primera contiene los numeros enteros impares entre 1 y 100 y, la segunda, los numeros enteros pares entre 1 y 100. Indique de que forma podemos fusionar ambas pilas en una sola, ordenados sus numeros 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..