En este grupo En todos

Grupo de Java



listas doblemente enlazadas y listas circulares en java

diego
Tecnologia en sistemas uceva
Escrito por Diego Rendon
el 24/11/2008 | Nivel Medio

Hola amigos,
necesito saber si alguno de ustedes me pueden ayudar a hacer un programa que tenga
listas doblemente enlazadas y /o listas circulares en java, ya sea con documentos o programas que contengan punteros.
espero su pronta respuesta
gracias por su ayuda

Luis Herrera
Ingeniería en sistemas de información ...
Escrito por Luis Herrera
el 02/12/2008 | Nivel Medio

Arriba hay un link, que dice documentos en una ocación descargue uno que contiene algo sobre listas, intenta buscar información ahí, es con lo que te puedo ayudar ya que soy nuevo en java.


Espero te sirva mi ayuda.


Exitos.



Diego Rendon
Tecnologia en sistemas uceva
Escrito por Diego Rendon
el 04/12/2008 | Nivel Medio

Luis no me salio el Link, de todos modos gracias
y suerte con java, es muy bueno.
ah y si necesitas alguna ayuda, me lo puedes hacer saber.

Zulma Menacho Quintana
Ingeniería en sistemas universidad aut...
Escrito por Zulma Menacho Quintana
el 17/06/2009 | Nivel Medio

Https://saforas.wordpress.com/2008/07/27/listas-simples-y-dobles-en-java/


Descargate esos archivos comprimidos!

Espero te ayude =)

Elvis Manuel Martin Jaime
Ingenieria informatica universidad cie...
Escrito por Elvis Manuel Martin Jaime
el 10/10/2009 | Nivel Medio
Mandame el correo pa mandarte algo q he implemantado, de lista doblemente enlazada. El mio es: elvis. Manuel88@gmail. Com
Elvis Manuel Martin Jaime
Ingenieria informatica universidad cie...
Escrito por Elvis Manuel Martin Jaime
el 10/10/2009 | Nivel Medio
Es lo basico de las listas doblemente enlasadas.
Diego Rendon
Tecnologia en sistemas uceva
Escrito por Diego Rendon
el 13/10/2009 | Nivel Medio

Ok, mi correo es diegoarendon@hotmail. Com , y gracias

Victor Quimbiambia
Ing. de sistemas/ octavo universidad p...
Escrito por Victor Quimbiambia
el 27/10/2009 | Nivel Medio
LISTAS DOBLEMENTE ENLAZADAS1. INTRODUCCIÓN.

En algunas aplicaciones podemos desear recorrer la lista hacia adelante y hacia atrás, o dado un elemento, podemos desear conocer rápidamente los elementos anterior y siguiente. En tales situaciones podríamos desear darle a cada celda sobre una lista un puntero a las celdas siguiente y anterior en la lista tal y como se muestra en la figura.


Otra ventaja de las listas doblemente enlazadas es que podemos usar un puntero a la celda que contiene el i-ésimo elemento de una lista para representar la posición i, mejor que usar el puntero a la celda anterior aunque lógicamente, también es posible la implementación similar a la expuesta en las listas simples haciendo uso de la cabecera. El único precio que pagamos por estas características es la presencia de un puntero adicional en cada celda y consecuentemente procedimientos algo más largos para algunas de las operaciones básicas de listas. Si usamos punteros (mejor que cursores) podemos declarar celdas que consisten en un elemento y dos punteros a través de:

typedef struct celda{
tipoelemento elemento;
struct celda *siguiente,*anterior;
}tipocelda;

typedef tipocelda *posicion;

Un procedimiento para borrar un elemento en la posición p en una lista doblemente enlazada es:

void borrar (posicion p)
{
if (p->anterior! = NULL)
p->anterior->siguiente = p->siguiente;
if (p->siguiente! = NULL)
p->siguiente->anterior = p->anterior;
free(p);
}


El procedimiento anterior se expresa de forma gráfica en como muestra la figura:


Donde los trazos contínuos denotan la situación inicial y los punteados la final. El ejemplo visto se ajusta a la supresión de un elemento o celda de una lista situada en medio de la misma. Para obviar los problemas derivados de los elementos extremos (primero y último) es práctica común hacer que la cabecera de la lista doblemente enlazada sea una celda que efectivamente complete el círculo, es decir, el anterior a la celda de cabecera sea la última celda de la lista y la siguiente la primera. De esta manera no necesitamos chequear para NULL en el anterior procedimiento borrar .

Por consiguiente, podemos realizar una implementación de listas doblemente enlazadas con cabecera tal que tenga una estructura circular en el sentido de que dado un nodo y por medio de los punteros siguiente podemos volver hasta él como se puede observar en la figura (de forma analoga para anterior ).


Es importante notar que aunque la estructura física de la lista puede hacer pensar que mediante la operación siguiente podemos alcanzar de nuevo un nodo de la lista, la estructura lógica es la de una lista y por lo tanto habrá una posición primero y una posición fin de forma que al aplicar una operación anterior o siguiente respectivamente sobre estas posiciones el resultado será un error.

Respecto a la forma en que trabajarán las funciones de la implementación que proponemos hay que hacer constar los siguientes puntos:

  • La función de creación debe alojar memoria para la cabecera y hacer que los punteros siguiente y anterior apunten a ella, devolviendo un puntero a dicha cabecera.
  • La funci&oac
Angel Gomez Marcuñez
Ingenieria de sistemas universidad met...
Escrito por Angel Gomez Marcuñez
el 15/11/2009 | Nivel Medio

Ya enocntraste informacion o aun necsitas ayuda?

Conrado Yllera De Llano
Técnico especialista en electrónica de...
Escrito por Conrado Yllera De Llano
el 19/11/2009 | Nivel Medio

Si lo que pides es para un ejercicio de clase lo entiendo pero, si es para resolver un problema informático, ese tipo de listas ya lo tiene implementado java y no tienes nada mas que rellenarlas y usar sus métodos para acceder a sus datos o modificarlas.

Visita estos enlaces de la API oficial de Java en Sun Microsystems y navega por ellos:

Collection

LinkedList


Espero que te sirva. Si necesitas mas información no dudes en continuar el tema.


Conrado Yllera

Acarelly Consultores

Diego Rendon
Tecnologia en sistemas uceva
Escrito por Diego Rendon
el 19/11/2009 | Nivel Medio

Ya encontre la informacion q buscaba pero igual los datos q me facilitaron los estare viendo, parecen interesantes, gracias

Alonso Alvarado
San Jose, Costa Rica
Escrito por Alonso Alvarado
el 09/02/2010 | Nivel Medio

Yo tengo ese codigo para insertar un numero como hago para hacerlo circular

public void inserta(Nodo p) {
if (cabeza == null) { //Si la lista està vacìa?
cabeza = p;
} else if (p. GetId() < cabeza. GetId()) {
p. SetNext(cabeza);
cabeza. SetNext(cabeza);
cabeza = p;

} else if (cabeza. GetNext() == null) {
cabeza. SetNext(p);

} else {
Nodo aux = cabeza;
while (aux. GetNext()! = null) && (aux. GetNext(). GetId() < p. GetId())) {
aux = aux. GetNext();
}
p. SetNext(aux. GetNext());
aux. SetNext(p);
p. SetNext(cabeza. GetNext());
}

}

Omaira Durango
Antioquia, Colombia
Escrito por Omaira Durango
el 17/02/2010 | Nivel Medio

Por favor me recomiendan buena bibliografia sobre manejo de Estructuras de Datos para principiantes en java. Muchas gracias

Erick Robert Montiel Viveros
Sistemas computacionales itpachuca
Escrito por Erick Robert Montiel Viveros
el 06/04/2011 | Nivel Medio

Gracias a todos e acabado mi lista doblemente enlazada circular je je je.................................

Naomy Leyva
Sinaloa, México
Escrito por Naomy Leyva
el 22/11/2012 | Nivel Medio

Me urge los metodos de elimanar antes y depues en listas circulares sencillas urge