\' Gambas class file
Public v0 As Nodo
Public v1 As Nodo
Public v2 As Nodo
Public v3 As Nodo
Public v4 As Nodo
Public v5 As Nodo
Public Nodotemporal As Nodo
Public Sub _new()
End
Public Sub Form_Open()
\'Ejemplo listas Enlazadas
definirNodosYenlazarlos()
TextLabel1.text = v0.dato
TextLabelFrutasSiguen.text = v0.VerLista()
Nodotemporal = v0
End
Public Sub definirNodosYenlazarlos()
\'defino los elementos
v0 = New Nodo("Locomotora")
v1 = New Nodo("Manzanas")
v2 = New Nodo("Peras")
v3 = New Nodo("Bananas")
v4 = New Nodo("Fresas")
v5 = New Nodo("Naranjas")
\'defino los enlaces
v0.EnlaceHaciaAdelante(v1)
v1.EnlaceHaciaAdelante(v2)
v2.EnlaceHaciaAdelante(v3)
v3.EnlaceHaciaAdelante(v4)
v4.EnlaceHaciaAdelante(v5)
End
Public Sub ButtonAdelante_Click()
If IsNull(Nodotemporal.siguiente) Then
TextLabelFrutasSiguen.text = "Ultimo Elemento"
Return
Endif
Nodotemporal = Nodotemporal.siguiente
TextLabel1.text = Nodotemporal.dato
TextLabelFrutasSiguen.text = Nodotemporal.VerLista()
End
Public Sub ButtonReiniciarLista_Click()
Nodotemporal = v0
TextLabel1.text = Nodotemporal.dato
TextLabelFrutasSiguen.text = Nodotemporal.VerLista()
End
Public Sub ButtonAnade_Click()
\'creo un nuevo nodo
Dim nodoNuevo As New Nodo(TextBoxFrutaNueva.Text)
\'lo meto entre el nodo actual (el temporal) y el que le sigue
nodoNuevo.EnlaceHaciaAdelante(Nodotemporal.siguiente)
Nodotemporal.EnlaceHaciaAdelante(nodoNuevo)
\'muestro la nueva lista de siguientes
TextLabelFrutasSiguen.text = Nodotemporal.VerLista()
End
Public Sub ButtonBorra_Click()
Dim nodoSiguienteSiguiente As Nodo
\'compruebo que el vagon siguiente no es null (no se puede borrar)
If IsNull(Nodotemporal.siguiente) Then
Print "No puedo borrar"
Else
\'lo que hago es obtener el vagon que le siguiente al siguiente
Nodotemporal.EnlaceHaciaAdelante(Nodotemporal.siguiente.siguiente)
\'y se lo asigno al vagon actual...
\'muestro la nueva lista de siguientes
TextLabelFrutasSiguen.text = Nodotemporal.VerLista()
Endif
End