Listas ligadas??

02/06/2005 - 17:20 por Luis | Informe spam
Buenas a todos, una pregunta se pueden implementar listas ligadas en VB.Net?
como?
Gracias por sus comentarios
Luis.

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
02/06/2005 - 19:34 | Informe spam
Luis wrote:
Buenas a todos, una pregunta se pueden implementar listas ligadas en
VB.Net? como?



Si, con clases. Coloca un campo que sea del mismo tipo de la clase. Aqui va
un ejemplo muy (pero realmente muy) simple:

Class ElementoDeUnaListaLigada
Public siguiente As ElementoDeUnaListaLigada
End Class

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#2 Luis
02/06/2005 - 19:49 | Informe spam
Ok, pero con una clase gasto mas memoria ¿verdad? yo me imaginaba algo así:
En pascal, por que ahí si me salen bien... jeje
TipoLista: ^TipoNodo
TipoNodo=record
Info:string;
enlace:TipoLista;
end;

var
Lista:TipoLista;

supongo que en tu ejemplo a la clase le pongo un atributo mas para llevar la
infor, verdad?
pero si gasta mas memoria, alguna otra opción??



"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> wrote in message
news:
Luis wrote:
> Buenas a todos, una pregunta se pueden implementar listas ligadas en
> VB.Net? como?

Si, con clases. Coloca un campo que sea del mismo tipo de la clase. Aqui


va
un ejemplo muy (pero realmente muy) simple:

Class ElementoDeUnaListaLigada
Public siguiente As ElementoDeUnaListaLigada
End Class

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo


Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
02/06/2005 - 20:15 | Informe spam
En VB.NET no tienes apuntadores (con C# puedes usar apuntadores pero con
algunas restricciones). Entonces la solucion es usar un tipo por referencia
(ya que las referencias son como apuntadores), es decir, clases.

supongo que en tu ejemplo a la clase le pongo un atributo mas para
llevar la infor, verdad?



Por supuesto.

pero si gasta mas memoria, alguna otra opción??



Otras opciones las encuentras en el namespace System.Collections. Hasta
donde yo se, ninguna de las clases de System.Collections esta implementada
como una lista ligada, porque son mas lentas que un array si necesitas
acceder a un elemento especifico.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#4 Luis
02/06/2005 - 20:24 | Informe spam
Entonces un pregunta mas, en C# si puedo usar listas ligadas de la forma que
yo quiero usarlas, o tampoco?

... por cierto muchas gracias por tu ayuda Eduardo.
Luis.

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> wrote in message
news:
En VB.NET no tienes apuntadores (con C# puedes usar apuntadores pero con
algunas restricciones). Entonces la solucion es usar un tipo por


referencia
(ya que las referencias son como apuntadores), es decir, clases.

> supongo que en tu ejemplo a la clase le pongo un atributo mas para
> llevar la infor, verdad?

Por supuesto.

> pero si gasta mas memoria, alguna otra opción??

Otras opciones las encuentras en el namespace System.Collections. Hasta
donde yo se, ninguna de las clases de System.Collections esta implementada
como una lista ligada, porque son mas lentas que un array si necesitas
acceder a un elemento especifico.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo


Respuesta Responder a este mensaje
#5 Eduardo A. Morcillo [MS MVP VB]
02/06/2005 - 20:59 | Informe spam
Entonces un pregunta mas, en C# si puedo usar listas ligadas de la forma
que
yo quiero usarlas, o tampoco?



Mas o menos. Como dije tienes restricciones. Primero su uso debe estar
dentro de un "unsafe" y tienes restricciones en cuanto a los tipos que
puedes usar. Por ejemplo puedes declarar una estructura asi:

unsafe struct node {
public node *sig;
public int i;
};

Y usarla asi:

unsafe {
nodo n = new nodo();
nodo *lista = &n;
}

Y todo va bien, pero si en la estructura pones algun tipo manejado, como por
ejemplo un string, ya no puedes usar los apuntadores. Como veras, en .NET la
unica forma de hacer listas ligadas es con clases.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida