Foros del Web » Programación para mayores de 30 ;) » Java »

Ejercicio Lista enlazada

Estas en el tema de Ejercicio Lista enlazada en el foro de Java en Foros del Web. Estoy haciendo un curso y tengo que entregar este ejercicio que me piden lo siguiente. He realizado lo que he podido y me he quedado ...
  #1 (permalink)  
Antiguo 13/11/2011, 14:00
 
Fecha de Ingreso: noviembre-2009
Mensajes: 15
Antigüedad: 15 años, 1 mes
Puntos: 0
Ejercicio Lista enlazada

Estoy haciendo un curso y tengo que entregar este ejercicio que me piden lo siguiente.
He realizado lo que he podido y me he quedado bloqueado y no se por donde seguir, lo que pongo en azul más abajo es lo que me falta por hacer:

REQUISITOS:
1.-
Implementar un clase denominada “Enlace” que contenga un elemento
Object y una referencia a otro objeto “Enlace”, según el siguiente diagrama
de clases:

Enlace
----------
Objeto elemento
Enlace siguiente
----------
public Object getElemento()
public Enlace getSiguiente()
public void setElemento(Object elemento)
public void setSiguiente(Enlace siguiente)

2.
Crear la clase “ListaEnlazada” que implemente el interfaz
Enumeration y que represente una lista donde cada nodo
contiene un objeto y la referencia al siguiente nodo
(apoyándose en la clase “Enlace”),

public class ListaEnlazada implements Enumeration {
Enlace cabecera, cola, actual, longitud;
int longitud;
public int numeroElementos()
public boolean esVacia()
public Object elementoActual()
public void insertarAlFinal(Object elemento)
public void reiniciar()
public boolean hasMoreElements()
public Object nextElement()

Descripción de los atributos:
• cabecera: Es un objeto “Enlace” que indica cual es primer nodo
de la lista. Si la lista está vacía será null.
• cola: Representa al último nodo de la lista. Si la lista está vacía
será null.
• actual: La lista enlazada contempla que pueda ser recorrida
secuencialmente. La variable “actual” nos indica cual ha sido el
último nodo accedido a través del método nextElement().
Cuando el valor de “actual” sea null, el objeto a devolver con
nextElement() será el primero de la lista.
• longitud: Número de nodos de la lista.

Descripción de los métodos
• numeroElementos(): Permite obtener el tamaño, es decir la longitud de la lista
• esVacia(). Devuelve un booleano si la lista no contiene objetos.
• elementoActual(): Devuelve el elemento contenido en el objeto Enlace
referenciado por “actual”.
• reiniciar(): Pone la variable “actual” a null. De modo que elementoActual()
devuelve null y nextElement() devuelve el primer elemento.
• hasMoreElements(): Devuelve true si la lista no está vacía y quedan elementos
por recorrer.
• nextElement(): Devuelve el siguiente objeto del elemento actual, avanzando una
posición en la lista.
• insertarAlFinal(): Añade un elemento al final de la lista.
• Se crea un objeto Enlace.
• Si la lista está vacía el nuevo elemento es la cabecera y la cola.
• SI la lista no está vacía:
• Actualiza la referencia “siguiente” de la variable “cola” al nuevo objeto.
• Modifica la referencia “cola”, ya que el nuevo elemento pasa a ser la cola.
• Incrementamos la longitud.
Realizar una clase OperarLista con un método main que opere
con la lista.
• Añadir 5 elementos que sean String �� “uno”, “dos”, “tres”,
“cuatro” y “cinco”
• Recorrer desde el inicio los elementos de la lista secuencialmente
con los métodos de la clase ListaEnlazada, hasMoreElements() y
nextElement()


He conseguido realizar lo siguiente que no se si esta bien pero ya me he quedado estancado y no se como seguir con lo que me falta:

public class Enlace {

private Object elemento;
private Enlace siguiente;

public Enlace (Object n) {
elemento=n;
siguiente=null;
}

public Object getElemento(){
return elemento;
}
public Enlace getSiguiente(){
return siguiente;
}
public void setElemento(Object elemento) {
this.elemento=elemento;
}
public void setSiguiente(Enlace siguiente) {
this.siguiente=siguiente;
}
}

-------------------------------------------------

import java.util.*;
public class ListaEnlazada implements Enumeration {
Enlace cabecera, cola, actual, longitud;
int longitud;

public int numeroElementos() {

}
public boolean esVacia(){
return cabecera==null && cola==null;
}
public Object elementoActual() {

}
public void insertarAlFinal(Object elemento) {
Enlace nuevo=new Enlace (elemento);
if (esVacia()){
cabecera=nuevo;
}
else
{
Enlace actual=cabecera;
while(actual.getSiguiente()!=null) {
actual=actual.getSiguiente();
}
actual.setSiguiente(nuevo);
}
}
{
}
public void reiniciar(){

}
public boolean hasMoreElements() {

}
public Object nextElement() {

}

}
  #2 (permalink)  
Antiguo 13/11/2011, 17:42
 
Fecha de Ingreso: noviembre-2009
Mensajes: 15
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Ejercicio Lista enlazada

ya no puedo mas, lo he intentado todo, he leido no se cuantos tutoriales, pero no hay forma de que sea capaz de hacer lo que me piden.
  #3 (permalink)  
Antiguo 14/11/2011, 02:13
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 17 años, 3 meses
Puntos: 8
Respuesta: Ejercicio Lista enlazada

Cita:
Iniciado por saciorlux Ver Mensaje
Estoy haciendo un curso y tengo que entregar este ejercicio que me piden lo siguiente.
He realizado lo que he podido y me he quedado bloqueado y no se por donde seguir, lo que pongo en azul más abajo es lo que me falta por hacer:

REQUISITOS:
1.-
Implementar un clase denominada “Enlace” que contenga un elemento
Object y una referencia a otro objeto “Enlace”, según el siguiente diagrama
de clases:

Enlace
----------
Objeto elemento
Enlace siguiente
----------
public Object getElemento()
public Enlace getSiguiente()
public void setElemento(Object elemento)
public void setSiguiente(Enlace siguiente)

2.
Crear la clase “ListaEnlazada” que implemente el interfaz
Enumeration y que represente una lista donde cada nodo
contiene un objeto y la referencia al siguiente nodo
(apoyándose en la clase “Enlace”),

public class ListaEnlazada implements Enumeration {
Enlace cabecera, cola, actual, longitud;
int longitud;
public int numeroElementos()
public boolean esVacia()
public Object elementoActual()
public void insertarAlFinal(Object elemento)
public void reiniciar()
public boolean hasMoreElements()
public Object nextElement()

Descripción de los atributos:
• cabecera: Es un objeto “Enlace” que indica cual es primer nodo
de la lista. Si la lista está vacía será null.
• cola: Representa al último nodo de la lista. Si la lista está vacía
será null.
• actual: La lista enlazada contempla que pueda ser recorrida
secuencialmente. La variable “actual” nos indica cual ha sido el
último nodo accedido a través del método nextElement().
Cuando el valor de “actual” sea null, el objeto a devolver con
nextElement() será el primero de la lista.
• longitud: Número de nodos de la lista.

Descripción de los métodos
• numeroElementos(): Permite obtener el tamaño, es decir la longitud de la lista
• esVacia(). Devuelve un booleano si la lista no contiene objetos.
• elementoActual(): Devuelve el elemento contenido en el objeto Enlace
referenciado por “actual”.
• reiniciar(): Pone la variable “actual” a null. De modo que elementoActual()
devuelve null y nextElement() devuelve el primer elemento.
• hasMoreElements(): Devuelve true si la lista no está vacía y quedan elementos
por recorrer.
• nextElement(): Devuelve el siguiente objeto del elemento actual, avanzando una
posición en la lista.
• insertarAlFinal(): Añade un elemento al final de la lista.
• Se crea un objeto Enlace.
• Si la lista está vacía el nuevo elemento es la cabecera y la cola.
• SI la lista no está vacía:
• Actualiza la referencia “siguiente” de la variable “cola” al nuevo objeto.
• Modifica la referencia “cola”, ya que el nuevo elemento pasa a ser la cola.
• Incrementamos la longitud.
Realizar una clase OperarLista con un método main que opere
con la lista.
• Añadir 5 elementos que sean String �� “uno”, “dos”, “tres”,
“cuatro” y “cinco”
• Recorrer desde el inicio los elementos de la lista secuencialmente
con los métodos de la clase ListaEnlazada, hasMoreElements() y
nextElement()


He conseguido realizar lo siguiente que no se si esta bien pero ya me he quedado estancado y no se como seguir con lo que me falta:

public class Enlace {

private Object elemento;
private Enlace siguiente;

public Enlace (Object n) {
elemento=n;
siguiente=null;
}

public Object getElemento(){
return elemento;
}
public Enlace getSiguiente(){
return siguiente;
}
public void setElemento(Object elemento) {
this.elemento=elemento;
}
public void setSiguiente(Enlace siguiente) {
this.siguiente=siguiente;
}
}

-------------------------------------------------

import java.util.*;
public class ListaEnlazada implements Enumeration {
Enlace cabecera, cola, actual, longitud;
int longitud;

public int numeroElementos() {

}
public boolean esVacia(){
return cabecera==null && cola==null;
}
public Object elementoActual() {

}
public void insertarAlFinal(Object elemento) {
Enlace nuevo=new Enlace (elemento);
if (esVacia()){
cabecera=nuevo;
}
else
{
Enlace actual=cabecera;
while(actual.getSiguiente()!=null) {
actual=actual.getSiguiente();
}
actual.setSiguiente(nuevo);
}
}
{
}
public void reiniciar(){

}
public boolean hasMoreElements() {

}
public Object nextElement() {

}

}
public int numeroElementos()
{
return longitud;
}

el metodo insertar lo tienes que cambiar para que cuando inserta sumar uno a la longitud.

public void reiniciar()
{
longitud = 0;
cabecera, cola, actual = null;
}

public boolean hasMoreElements()
{
return (actual.getSiguiente() != null);
}

public Object nextElement()
{
Object result;
result = actual.getElemento();
actual = actual.getSiguiente();
return result;
}

Para preguntar si es vacia tambien puedes preguntar si la longitud es cero.
  #4 (permalink)  
Antiguo 14/11/2011, 12:21
 
Fecha de Ingreso: noviembre-2009
Mensajes: 15
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Ejercicio Lista enlazada

ahora como tego que hacer para insertar elementos para probar?
  #5 (permalink)  
Antiguo 15/11/2011, 02:17
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 17 años, 3 meses
Puntos: 8
Respuesta: Ejercicio Lista enlazada

Haces un new para crear un objeto de la lista enlazada y luego invocas al metodo insertarAlfinal. como el parametro que recibe es de tipo object puede ser de cualquier Clase, String, Integer, Double, hasta tambien de ListaEnlazada.

Para esto tendras un metodo main supongo en la clase.

Etiquetas: ejercicio, enlazada, lista, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:27.