algoritmos de planificacion
Enunciado
Implementar en Java una clase de listas circulares de enteros doblemente encadenadas. En concreto, la práctica contendrá la siguiente clase denodos:
class nodo
{ int valor;
nodo ant;
nodo sig;
}
y también ha de contener la clase de listas con las operaciones siguientes:
public class L_circular
{ nodo acceso=null;
public voidinsertar(int N)
{
//código de insertar
}
public void suprimir()
{
//código de suprimir
}
public boolean buscar(int N)
{
//código de buscar
}
}
Más concretamente, la estructura de datos aimplementar ha de tener una forma como la siguiente:
acceso
La referencia acceso ha de apuntar a un nodo cualquiera de la lista. La operación insertar, dado un número N, ha de insertar un nodo con elvalor N en la posición siguiente a la apuntada por acceso. La operación suprimir ha de eliminar el nodo apuntado por acceso. Finalmente, la
operación buscar nos debe contestar si un elemento N está ono en la lista y, en caso en que esté, nos ha de dejar a acceso apuntando al nodo que contiene a N..
Sol·lució:
Nota: la sol·lució té diversos errors.
class nodo
{
int valor;
nodo ant;
nodosig;
}
public class L_circular
{
nodo acceso=null;
public void insertar(int N)
/*dado un nmero N, ha de insertar un nodo con el valor
*N en la posicion� siguiente a la apuntada poracceso.*/
{
nodo nuevo = new nodo();
nuevo.valor = N;
if (acceso == null){
nuevo.sig = nuevo;
nuevo.ant = nuevo;
acceso = nuevo;
} else {
nuevo.sig = acceso.sig;
nuevo.ant = acceso;
acceso.sig.ant= nuevo;
acceso.sig = nuevo;
}
}
public void suprimir()
/*eliminar el nodo apuntado por acceso. Acceso apunta al
*siguiente nodo*/
{
if (acceso != null){ //hay como minimo un nodo nodo
if(acceso.sig == acceso){ //solo hay un nodo
acceso = null;
} else {//hay mas de un nodo
acceso.sig.ant= acceso.ant;
acceso.ant.sig = acceso.sig;
acceso = acceso.sig;
}
}
}
public boolean...
Regístrate para leer el documento completo.