Sei sulla pagina 1di 4

Contenedor= clase de Los atributos son: Atributos Conte: LDE Conte el que contiene la pila, tope que Tope:

LDE es el apuntador al tope de la pila, dulce Dulce: cadena que es valor que se guarda en la pila y Contenido: entero contenido que es el tamao de la pila Mtodos Mtodo Vaca(R: contenedor): lgico Variable Mtodo vaca permite saber si la Inicio pila est vaca o no. si el tope de la Si R.tope= nulo entonces pila apunta a nulo quiere decir que Vaca verdad se encuentra vaca en caso Sino contrario devuelve falso Vaca falso Fsi Fmetodo Mtodo Llena(R: contenedor): lgico Mtodo llena verifica si la pila Variables est llena, si su contenido es Inicio igual al lmite de contenido Si R.contenido= 200 entonces devuelve verdad en caso Llena verdad contrario devuelve falso Sino Llena falso Fsi Fmetodo Mtodo cima (R: contenedor): cadena Variables Mtodo cima lo que hace es Inicio devolver el nombre del dulce Si _ R.vacia(R) entonces que se encuentra en el tope en Cima R.tope. Dulce el caso de que tenga algn Sino elemento. Si la pila est vaca Cima nulo devuelve nulo porque no hay Fsi Fmetodo Mtodo push lo que hace es insertar Mtodo push(R: contenedor, dulc: cadena) un elemento en la pila si la pila no Variable est llena lo que se hace es mandar Inicio a insertar el elemento en el Si _ R.Llena (R) entonces contenedor de la pila, el tope apunta R.conte insertar inicio (R.conte, crear nodo (dulc)) al contenedor de la pila y al tamao R.tope R. conte de la pila le sumo uno .si est llena R.contenido R.contenido+1 mando a escribir pila llena no se Sino Escribir pila llena Fsi Fmetodo Mtodo pop(R: contenedor) Variables Inicio Mtodo pop elimina el primer elemento de la Si _ R.vacia(R) entonces R.conte eliminar inicio (R.conte) pila, el tope apunta al contenedor de la pila y se resta 1 al tamao de la pila esto es en el R.tope R.conte caso de que la pila no est vaca, si llegase a estar vaca mando a escribir que la pila est vaca y no se puede eliminar ningn elemento

R.contenido R.contenido-1 Sino Escribir pila vaca Fsi Fmetodo Nios= clase de Los atributos son: Atributos S: LDE S el contenedor de la cola, Fre el apuntador al Fre: LDE frente de la cola, fod0 el fondo de la cola, Fod0: LDE fod1 un fondo auxiliar, nombre el nombre de Fod1: LDE los nios en la cola, chuchera el nombre de Nombre: cadena las chucheras que tiene cada nio, tamao se Chuchera: arreglo [25] de cadena refiere al tamao mximo de la cola Tamao: entero Mtodos Mtodo vaca(C: nios): lgico Variables Mtodo vaca lo que permite es saber si la Inicio cola est vaca, si el frente de la cola es Si C.Fre=nulo entonces nulo por lo tanto est vaca la cola en caso Vaca verdad contrario la cola no est vaca Sino Vaca falso Fsi Fmetodo Mtodo primero(C: nios): cadena Variables Mtodo primero lo que permite es Inicio conocer el nombre del nio y los Si _ C.vacia(C) entonces nombres del dulce que el nio Primero C.fre.nombre.chucheria tiene que se encuentra en el Sino frente de la cola, si la cola est Primero nulo vaca no devuelve ningn valor Fsi Fmetodo Mtodo ultimo(C: nios): cadena Variable Inicio Mtodo ultimo permite conocer el nombre del Si _ C.vacia(C) entonces nio que se encuentra de ultimo en la cola, pero Si fod0 <>nulo entonces como hay dos fondos se pregunta por el fondo0 Ultimo C.fod0.nombre que es por donde realmente entra los nios si Sino este es diferente de nulo devuelve el nombre Si fod1 <> nulo entonces Mtodo dulce repetido lo va a del nio, en caso contrario pregunto si el fondo Ultimo C.fod1.nombre permitir es verifica si el nio tiene 1 es diferente de nulo para mostrar el nombre Sino el dulce que se le va a dar al del nio ya que este viene siendo el ultimo Ultimo nulo momento de repartir, lo que paso porque en el fondo0 no hay nadie, en el caso de Fsi es la pila de dulce y el arreglo de que los 2 fondos sean nulos no devuelve ningn Fsi dulces que posee el nio. Mientras Fmetodo que los dulces que tiene el nio Mtodo Dulce_repetido(R: contenedor, chuche: chuchera): lgico sea diferente de lo que hay en el Variable tope de la pila y no se llegue al final I: entero del arreglo de dulce del nios, si Inicio llega a una posicin cualquiera (i) del arreglo de dulces del nio y el dulce que est en la pila es igual

I 0 Mientras R.cima(R) <> chuche [i] y chuche <> $ hacer I I+1 Fmientras Si chuche [i]= R.cima(R) entonces Dulce_repetido verdad Sino Dulce_repetido falso Fsi Fmetodo Mtodo encolar(C: nios, chico: cadena) Variable Metodo encolar lo que permite es encolar Inicio un nio en la cola , llamo al metodo dulce Si _ Dulce_repetido(R, chuche) entonces repetido para ver si este tiene el dulce Si fod0 <> nulo entonces repetido si es as encolo dependiendo de la C.S insertar ultimo (C.S, crear nodo (chico)) repuesta pregunto si el fondo 0 es diferente C.fod0 C.fod0.sig de nulo si es verdad entonces inserto el Sino elemento de ultimo y el fondo0 lo muevo al C.S insertar inicio (C.S, crear nodo (chico)) siguiente , sino si el fondo0 es nulo inserto C.fre C.S el elemento al inicio , sino si mi dulce esta C.Fod0 C.S repetido pregunto si el fondo1 que es un Fsi fondo auxiliar es distinto de nulo si es Sino verdad mando a insertar el elemento al Si fod1<> nulo entonces siguiente y muevo tanto el frente como el C.S insertar indicado (C.S, crear nodo (chico)) fondo1, si el fondo 1 llegase a estar vacio se C.fre C.Fre.sig inserta el inicio del fondo1. C.Fod1 C.Fod1.ant Sino C.S insertar inicio (C.S, crear nodo (chico)) C.fre C.S C.Fod1 C.S Fsi Fsi Fmetodo Mtodo buscar _dulce(R: contenedor, Casa: entero, limite: tamao) Variables El metodo buscar _ dulce permite que se recorra I: entero las casas para generar un dulce, luego hago J: entero otro ciclo Para que va a recorrer hasta que Inicio llegue al lmite de la cola y a I le asigno el Para I=1 hasta Casa hacer metodo aleatorio que va a permitir buscar el Para J=1 hasta limite hacer dulce que se encuentra en esa posicin en el I Aleatorio (1, 5) arreglo de dulces del archivo de entrada para R.push (R.conte, dulc [I}) luego insertar en la pila ese dulce que estaba en Fpara Fpara Fmetodo Mtodo desencolar(C: nios) Variable Inicio Si C.vacia(C) entonces Metodo desencolar lo que permite es sacar un nio de la cola si esta est vaca no se puede desencolar nio porque la cola est vaca, sino si alguien en la cola muevo el frente al siguiente nio y elimino al inicio

Escribir cola vaca Sino C.Fre C.Fre.sig C.S Eliminar inicio (C.S) Fsi Fmetodo Mtodo repartir (C: nios. R: contenedor) Metodo repartir lo que va a Variables permitir es entregar los dulces a Inicio los nios en la cola, pero primer Repetir llamo al metodo dulce repetido Si Dulce_ repetido(R, chuche) entonces para verificar si ya posee el dulce, C.S encolar (C.S, chico) si es as llamo al metodo encolar C.S desencolar (C.S) que va hacer su rutina y Sino dependiendo de la respuesta que C.Fre .chuchera R.cima(R) este metodo haga llamo al C.S encolar (C.S, chico) metodo desencolar, sino posee el R. POP(R) dulce le asigno el tope de la pila al C.S desencolar (C.S) nio pero en su campo chuchera, FSI encolo al nio saco el dulce de la Hasta R. vaca (R) pila y luego desencolo al nio. Mientras _ C .vaca (C) hacer Esto se repite hasta que la pila de C.primero(C) dulce quede vaca, luego hago un C.S desencolar (C.S) Fmientras Fmetodo Algoritmo principal DEC tipo Registe= registro de Contenido: entero Chico: arreglo [20] de cadena Dulc: arreglo [5] de cadena Casa: entero Dulces= archivo de registe Inicio Cargar (dulces) Inicializar (dulce, dulce.txt)

Potrebbero piacerti anche