3.1- Pilas
*Pila.- Es un conjunto ordenado de elementos en el cual se pueden agregar y eliminar datos por uno de sus extremos
llamado tope de la pila(top). "Siempre empieza con valor -1 (marca el estado vacío de cualquier estructura)". La pila es una estructura de datos LIFO porque el ultimo datos que se inserta es el primero que se elimina (Last in-first out).
=OPERACIONES EN UNA PILA=
1.-Push-> Es el método a traves del cual se va a agregar un dato nuevo a la pila tomando en cuenta la capacidad máxima de almacenar en la estructura.
Algorítmo:
Push(Pila,Top,Max,Elemento)
Si Top !=Max-1 entonces
Top<-Top+1
Pila[Top],_Elemento
Si no
Imprimir "La Pila Esta Llena"
Salir.
2.-Pop-> (Eliminar) Es el método con el cual se va a eliminar el ultimo dato de la pila basandose en la posicion de Top.
Si no esxisten elementos en la pila, desplegara el mensage "La Pila Esta Vacía".
Algorítmo:
Pop(Pila,Top)
Si Top !=Nulo(-1) entonces
Imprimir "Elemento:",Pila[Top],"Será Eliminado"
Pila[Top]<-0
Top,_Top-1
Si no
Imprimir "La Pila Esta Vacía"
Salir.
(Programa 15)
Menu Operaciones en una Pila
1 Insertar Datos en la Pila
2 Eliminar Datos en la Pila
3 Desplegar Datos en la Pila
4 Buscar Datos en la Pila
5 Fin del Programa
Instrucciones:
1.-Inicializar Top=-1
2.-Pedir el Tamaño Máximo de la Pila y enviarlo al constructor para establecer el tamaño máximo de la pila.
3.-Pedir desde el Menu de dato a insertar y enviar como parámetro al método PUSH.
4.-Hacer 2 Programas: Uno que maneje datos de tipo double (número) y otro que maneje datos de tipo string (nombres)
3. Recorrido:
Es el método a través del cual se hace un recorrido a la pila para desplegar los elementos a partir
de la posicion del tope de la pila y se repite hasta que la variable auxiliar sea igual a nulo(-1).
Algorítmo:
Recorrido (Pila, Top)
si Top!=Nulo(-1) entonces
Apuntador=Top
Repetir mientras apuntador !=Nulo
Imprimir "Elemeno",Pila[Apuntador],"Posicion:",Apuntador
Apuntador=Apuntador-1
Fin del ciclo
si no
Imprimir "La pila esta Vacía"
Salir
4. Busqueda:
Es el método que se utiliza para localizar un elemento en particular en la pila. si esta resulta exitosa desplegara el elemento y la posicion en la que se encuentra, si no desplegara el mensaje de que el elemento no fue encontrado.
Algorítmo:
Busqueda (Pila,Top,Elemento)
si Top!=Nulo(-1)
Apuntador=Top
Repetir mientras Apuntador!=Nulo
Si Pila[Apuntador]=Elemento entonces
Imprimir "El dato",Elemento,"fue encontrado en la posicion",Apuntador
Salir (RETURN)
Si no
Apuntador=Apuntador-1
Fin del ciclo
Imprimir "El dato",Elemento,"no esta en la Pila"
si no
Imprimir "La pila esta Vacía"
Salir
Es el método a través del cual se hace un recorrido a la pila para desplegar los elementos a partir
de la posicion del tope de la pila y se repite hasta que la variable auxiliar sea igual a nulo(-1).
Algorítmo:
Recorrido (Pila, Top)
si Top!=Nulo(-1) entonces
Apuntador=Top
Repetir mientras apuntador !=Nulo
Imprimir "Elemeno",Pila[Apuntador],"Posicion:",Apuntador
Apuntador=Apuntador-1
Fin del ciclo
si no
Imprimir "La pila esta Vacía"
Salir
4. Busqueda:
Es el método que se utiliza para localizar un elemento en particular en la pila. si esta resulta exitosa desplegara el elemento y la posicion en la que se encuentra, si no desplegara el mensaje de que el elemento no fue encontrado.
Algorítmo:
Busqueda (Pila,Top,Elemento)
si Top!=Nulo(-1)
Apuntador=Top
Repetir mientras Apuntador!=Nulo
Si Pila[Apuntador]=Elemento entonces
Imprimir "El dato",Elemento,"fue encontrado en la posicion",Apuntador
Salir (RETURN)
Si no
Apuntador=Apuntador-1
Fin del ciclo
Imprimir "El dato",Elemento,"no esta en la Pila"
si no
Imprimir "La pila esta Vacía"
Salir
No hay comentarios:
Publicar un comentario