Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
FIFO Y LIFO EN GAMBAS
Autor Mensaje
Responder citando   Descargar mensaje 
Mensaje FIFO Y LIFO EN GAMBAS 
 
Hola amigos, hoy hemos estado viendo en el curso de Analista Funcional un ejercicio de Java, sobre implementar  FIFO y LIFO:
Esto es lo que me piden en el ejercicio:
Citar:
Desarrollar la implementación de una lista del tipo pila o LIFO (Last Input First Output) y de una lista del tipo cola  o FIFO (First Input First Output). Las implementaciones deben ser genéricas, es decir, deben aceptar cualquier tipo de objeto.

Además, definir un tipo genérico Pila que imponga el API genérico de una lista (añadir y extraer elementos).

La  clase Actividad4 tiene un método main en el que se crearán los dos tipos de lista, se les añadirá los mismos elementos y en el mismo orden. Se comprobará el orden en el que se extraen los elementos en cada lista.


En la siguiente pagina web viene la solucion para Java

https://docs.google.com/document/pu...OaO4ZZEAk&pli=1

Aqui podeis ver el diagrama de clases de UML
17uhsix7lgwyr9zwqtz0yrl4ql9db9q

Bien lo he implementado a gambas, (gambas2: en vez de Objeto lo he implementado a Variant).

Clase ApiLista:
PUBLIC SUB anadir(Obj AS Variant)
END

PUBLIC FUNCTION extraer() AS Variant
END

PUBLIC FUNCTION getlongitud() AS Integer
END
 


Clase colaFifo:
' gambas class file

INHERITS ApiLista

PRIVATE primero AS Nodo
PRIVATE ultimo AS Nodo
PRIVATE longitud AS Integer


PUBLIC SUB anadir(obj AS Variant)

  DIM aux AS NEW Nodo
  aux.objeto = obj
  IF longitud = 0 THEN
  primero = aux
  ELSE
  ultimo.siguiente = aux
  ENDIF
  
  ultimo = aux
  longitud += 1

END


PUBLIC FUNCTION extraer() AS Variant
  
  DIM obj AS Variant
  IF longitud = 0 THEN
  RETURN -111 'cola vacia
  ELSE
  obj = primero.objeto
  primero = primero.siguiente
  longitud -= 1
  RETURN obj
  ENDIF
  
END

PUBLIC FUNCTION getlongitud() AS Integer
  
  RETURN longitud
  
END
 


Clase pilaLiFo:
' gambas class file

INHERITS ApiLista

PRIVATE top AS Nodo
PRIVATE longitud AS Integer



PUBLIC SUB anadir(obj AS Variant)

  DIM aux AS NEW Nodo
  aux.objeto = obj
   aux.siguiente = top
   top = aux
   longitud += 1
  
END



PUBLIC FUNCTION extraer() AS Variant
  DIM obj AS Variant
 
  IF top = NULL THEN  
     RETURN NULL ' lista vacia
     ENDIF
          
  obj = top.objeto
  top = top.siguiente
  longitud -= 1
  RETURN obj  
 
 
END

PUBLIC FUNCTION getlongitud() AS Integer
  
  RETURN longitud
  
END
 



Clase Nodo:
PUBLIC objeto AS Variant
PUBLIC siguiente AS Nodo
 



En el Formulario FMain: (añadimos un textarea, para ver el resultado)
PUBLIC SUB Form_Open()
' obtenido de:
'https://docs.google.com/document/pub?id=1TdCH71pyhdKELmwVo4IwQnqUtVErn85KMfOaO4ZZEAk&pli=1
'java-FIFO-LIFO
DIM i AS Integer
DIM elementos AS Integer

DIM pila AS NEW pilaLiFO[]
DIM cola AS NEW colaFifo[]



' Añadimos los mismos elementos a la pila y la cola.
FOR i = 0 TO 9
pila.anadir("AB" & Str$(I))
cola.anadir("AC" & Str$(I))
NEXT

' Extraer Pila
TextArea1.text = "Orden de Extraccion de la pila LIFO:\n"


elementos = pila.getlongitud()

FOR i = 0 TO elementos - 1
TextArea1.text &= " [" & pila.extraer() & "] "
NEXT

TextArea1.text &= "\n-------\n"
'Extraer en Cola
TextArea1.text &= "Orden de Extraccion de la cola FIFO:\n"


elementos = cola.getlongitud()

FOR i = 0 TO elementos - 1
TextArea1.text &= " [" & cola.extraer() & "] "
NEXT


END
 


fifo_lifo-20en-20gambas2

Creo que la conversion es correcta (de Java a Gambas2, pasando que no manejamos Objetos sino Variant, y en vez de usar Interfaces, usamos Herencia).

¿se podria mejorar? ¿existen la interfaces en gambas2?
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes H2database En GAMBAS netking86 Bases de Datos 1 Sabado, 26 Marzo 2011, 19:22 Ver último mensaje
fabianfv
No hay nuevos mensajes REPORTES EN GAMBAS lnoriega General 21 Viernes, 24 Junio 2011, 10:26 Ver último mensaje
shordi
No hay nuevos mensajes EZCAP Y GAMBAS celtilander General 10 Sabado, 04 May 2013, 10:50 Ver último mensaje
celtilander
No hay nuevos mensajes Hilos En GAMBAS netking86 General 5 Lunes, 11 Noviembre 2013, 20:10 Ver último mensaje
mckaygerhard
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron