Java - Ejercicio Lista Enlazada

 
Vista:

Ejercicio Lista Enlazada

Publicado por santos (3 intervenciones) el 12/11/2011 23:06:17
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 negrita 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, previo, 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, previo, 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() {

}

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ejercicio Lista Enlazada

Publicado por santos (3 intervenciones) el 13/11/2011 12:23:12
por favor me puede ayudar alguien con este ejercicio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ejercicio Lista Enlazada

Publicado por santos (3 intervenciones) el 14/11/2011 19:18:36
ya tengo realizado otra parte, ahora como tengo que hacer para insertar elementos para probar

import java.util.*;

@SuppressWarnings("rawtypes")
public class ListaEnlazada implements Enumeration {
Enlace cabecera, cola, actual;
int longitud;

public ListaEnlazada(){
cabecera=null;
cola=null;
actual=null;
longitud=0;
}

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

}
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()
{
longitud = 0;
cabecera=null;
cola=null;
actual = null;
}

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

public Object nextElement()
{
Object result;
result = actual.getElemento();
actual = actual.getSiguiente();
return result;
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar