Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Listas Enlazadas
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Listas Enlazadas 
 
Hola!.

A continuación os muestro un ejemplo de lo que es una lista enlazada.
Lo he convertido de un ejemplo de Python.

Lo cierto es que se me hace muy requete raro que en la misma clase se defina una propiedad como la misma clase..   (es como si se viera en un espejo y no tuviese fin).

Primero la clase Nodo:
Private hdato As String
Property dato As String

Private hsiguiente As Nodo
Property siguiente As Nodo

Public Sub _new(dat As String, Optional prox As Nodo)
  
  hdato = dat
  hsiguiente = prox
  
End

Private Function dato_Read() As String  
  
  Return hdato    
  
End

Private Sub dato_Write(Value As String)
  
  hdato = Value  
  
End

Private Function siguiente_Read() As Nodo  
  
  Return hsiguiente  
  
End

Public Sub VerLista(un_nodo As Nodo)
  
  While un_nodo
    Print (un_nodo.dato)
    un_nodo = un_nodo.siguiente
  Wend
  
End

Private Sub siguiente_Write(Value As Nodo)
  
  hsiguiente = Value  
  
End
 


Y el código del modulo principal:
' gambas module file

' Este ejemplo lo he implementado a Gambas3. El código en Python se puede encontrar en el libro:
' "Algoritmos y programación 1 con Python". No muestra su autor. Desconozco si hay otro manual que lo continue.

' Comienzo del ejemplo
' Debemos imaginar la lista enlazada como un conjunto de vagones, uno detrás de otro

Public Sub Main()
  
  ' Sunpogamos que tenemos tres vagones, v1,v2,v3. Cada vagón transporta fruta
  
  Dim v1, v2, v3, lista As Nodo
  
  ' El vagon 3 sera el ultimo de la cola, no tiene ningun vagon enganchado tras de si
  v3 = New Nodo("Bananas")
  ' El vagon 2 esta enganchado al vagon 3
  v2 = New Nodo("Peras", v3)
  ' El vagon 1 esta engando al vagon 2
  v1 = New Nodo("Manzanas", v2)
  
  'A nuestro método VerLista solo le pasamos el primer vagón para que
  'nos muestre los vagones que tiene enganchado tras de si.
  '
  ' Hagamos que lista comience desde el siguiente al v1. La hemos llamado lista por
  ' que es una lista de vagones, que es lo que nos va a mostrar  
  lista = v1
  ' Le pasamos al metodo Verlista, lista. Al igual que si le hubieramos pasado v1
  v1.VerLista(lista)
  Print
  lista = lista.siguiente
  v1.VerLista(lista)
  Print
  ' Si queremos desenganchar un vagon. Cambiamos el enganche.
  ' Desenganchamos el vagon de en medio.(v2)
  lista = v1
  v1.siguiente = v1
  v1.VerLista(lista)
  
  ' ¿ Que ocurrirá si al final del vagon1 enganchamos el propipio vagon1 ?.  
  ' Se produce una representación infinita, nunca termina. La lista infinita se conoce como lista circular
  ' Podríamos haber añadido como final del vagon3, el vagon1. Otra lista infinita
  
End
 


Aquí tenéis el código.

Saludos

Ejemplo_lista_enlazada.tar.gz
Descripción:  
Descargar
Nombre del archivo: Ejemplo_lista_enlazada.tar.gz
Tamaño: 6.25 KB
Descargado: 62 veces
Ejemplo_lista_enlazada.tar.gz
Descripción:  
Descargar
Nombre del archivo: Ejemplo_lista_enlazada.tar.gz
Tamaño: 6.25 KB
Descargado: 62 veces
Ejemplo_lista_enlazada.tar.gz
Descripción:  
Descargar
Nombre del archivo: Ejemplo_lista_enlazada.tar.gz
Tamaño: 6.25 KB
Descargado: 62 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Listas Enlazadas 
 
Naturalmente faltan métodos.Es el comienzo del ejemplo.  
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Listas Enlazadas 
 
Shell:

Muy bueno Shell, el tema de las estructuras de datos es muy importante e interesante.

Saludos

Nota:
Lo voy a añadir al curso de gambas, y comente cosas de estructuras de datos, pero no lo de las listas enlazadas  
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Miercoles, 19 Febrero 2014, 17:40; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Listas Enlazadas 
 
Julio:

Entonces es bueno que veas el manual.

http://www.etnassoft.com/biblioteca...enguaje-python/

Si quieres mejorarlo para el curso.

Estoy intentando de entender mejor las estructuras de datos dinámicas.

Buscando información en los manuales y tutoriales de Python para comprendedlo mejor.
Por mucho manual que he encontrado, no llegan a tocar en profundidad el tema.
Si acaso a lo mas, pilas y colas. Y este ultimo, listas enlazadas.

Encontré estos vídeos tutoriales que pueden interesarte ver, aunque sea de Python:
Ademas tienes Java y Html. No conocía el editor que usa el señor del vídeo.
Notepad para programación. Que curioso. Es algo mas que Notepad.

Este es el canal:

https://www.youtube.com/user/SONICProgramacion

En este vídeo encontraras algo sobre listas enlazadas


Link



A ver: En el libro que tengo por aquí, aunque se dedica a Pascal y Cobol en las estructuras dinámicas, muestra:
Citar:

- Punteros y variables dinámicas
- Listas
-- Listas densas
-- Listas enlazadas
- Pilas
-- Implementación mediante tablas
-- Implementación mediante punteros
- Colas
-- Implementación mediante tablas circulares
-- Implementación mediante punteros
- Arboles
-- Conceptos y definiciones
-- Arboles binarios
-- Representación mediante tablas
-- Representación mediante punteros
-- Transformación de arboles n-arios en binarios
-- Recorrido de un árbol binario
-- Arboles binarios de busqueda


Cuando comencé a leer el libro de "divertimientos informáticos" era comenzar y no entrame del todo bien.
Por que usaba en el primer ejemplo, arboles. O eso creía entender. El del juego del puzzle con números.

Así que para entender ese libro, antes estudiar lo principal.
Lo cierto es que esto de la programación no parece tener limites y es muy muy fácil perderse por el camino.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Miercoles, 19 Febrero 2014, 19:45; editado 2 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Listas Enlazadas 
 
Shell:

Citar:
Lo cierto es que esto de la programación no parece tener limites y es muy muy fácil perderse por el camino.


Pues si...   
 




===================
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 Linked List (lista Enlazadas) En Gambas ?¿ jsbsan General 5 Sabado, 21 Enero 2012, 19:57 Ver último mensaje
jsbsan
No hay nuevos mensajes Manejar Listas De Listas De Objetos: Array... jsbsan Aplicaciones/Fragmentos de Código 2 Viernes, 02 Noviembre 2012, 16:23 Ver último mensaje
jsbsan
No hay nuevos mensajes Problema Al Borrar Las Primeras Listas De ... jousseph Aplicaciones/Fragmentos de Código 3 Viernes, 05 Agosto 2016, 18:10 Ver último mensaje
shordi
No hay nuevos mensajes [Python] Las Listas Por Socratica Shell Python 0 Viernes, 14 Abril 2017, 14:30 Ver último mensaje
Shell
 

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

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 2 invitados
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