Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Yvana21 en 22 de Enero 2014, 20:10

Título: Ayuda en PASCAL! pilas estructura datos
Publicado por: Yvana21 en 22 de Enero 2014, 20:10
Hola, necesito hacer un programa en pascal utilizando pilas... No se mucho del tema, quisiera saber si alguien me podría ayudar, se lo agradecería mucho :D

El enunciado es el siguiente:

 Dada un pila de libros, identificado por su título, instrumentar un proceso que permita la búsqueda de un título. Los libros desapilados en la búsqueda se ordenan en una segunda pila a medida que se van quitando de la primera. Mostrar el libro extraído y el estado de las dos pilas. Si el libro no se encontrara en la pila deberá informarse este suceso. Los títulos son los siguientes:


*El combustible espiritual
*Gente tóxica
*La última lección
*Operación traviata
*Aquella cuidadana
*La apelación
*La pasión según Carmela
*Un hombre en la oscuridad.

Título: Re:Ayuda en PASCAL!
Publicado por: Alex Rodríguez en 22 de Enero 2014, 22:20
Hola, habría distintas maneras de hacerlo. Lo primero es tener claro que una pila es una estructura de datos donde sólo se puede interactuar con un elemento: el que está en la cima de la pila. Puedes simular pilas usando arrays (vectores), o bien puedes definir una pila usando punteros. Para usar punteros necesitas conocimientos más avanzados.

Crear una pila simulada con arrays para insertar los títulos de los libros:

TYPE
TIPOPILA=RECORD
DATOS:=ARRAY[1.. MAX] OF STRING;
CIMA:=0… MAX
END;
VAR
PILA1,PILA2:TIPOPILA; 

Aquí por ejemplo PILA1.CIMA te indica cuál es el elemento en la cima

La adición de un elemento en la pila la harías así:

PILA1.CIMA:=PILA1.CIMA +1;
PILA1.DATOS[PILA1.CIMA]:=ELEMENTOAINSERTAR;


Crear una pila basada en punteros:

TIPOPILA:=^NODO
NODO=RECORD
INFO:=STRING;
SIG:=TIPOPILA
END;

Aquí tenemos una estructura de datos recursiva, esto es más complejo de entender.

Lo más sencillo puede ser que definas tu pila usando arrays. En ella inserta los libros (cada libro con su índice). Cuando tengas la pila llena, puedes hacer una búsqueda eliminando el elemento de esa pila y pasándolo a la otra buscando una coincidencia.

Título: Re:Ayuda en PASCAL!
Publicado por: Yvana21 en 22 de Enero 2014, 23:15
Gracias!, Bueno estoy trabajando con punteros...Quizás por eso me cueste más, pero gracias por el aporte :D