MAIN
package listagenerica;
/**
*
* @author user
*/
public class Main {
/**
* @param
args the command line arguments
*/
public
static void main(String[] args) {
/*este método ingresa los ejercicios
que se realizaran*/
// TODO código de aplicación se coloca
aqui
|
Lista l=new Lista();
l.insertar(10);
l.insertar(1);
l.insertar(5);
l.insertar(18);
l.insertar(20);
l.insertar(4);
l.mostrar();
l.borrar(20);
l.mostrar();
l.borrar(5);
l.mostrar();
l.borrar(4);
l.mostrar();
l.insertar(27);
l.insertar(2);
l.insertar(22);
l.mostrar();
l.borrar(27);
l.mostrar();
}
}
NODO
package listagenerica;
/**
*
* @author user
*/
public class Nodo {
int dato;
/*ingresa una variable dato*/
Nodo enlace;
/*ingresa un nodo enlace*/
public Nodo(int x) {
/*ingresa una clase nodo con una variable x*/
dato = x; /*esta
variable x se iguala a la variable dato*/
enlace = null; /*el nodo enlace se iguala a null*/
}
public Nodo(int x, Nodo n) { /*ingresa una clase nodo con variables x y un nodo n*/
dato = x; /*a
la variable x la iguala a la variable dato*/
enlace = n; /*la
variable n la iguala a la variable n*/
}
public int leerDato() {/*ingresa una clase leer datos*/
return dato; /*regresa
la variable dato*/
}
public Nodo siguiente() { /*ingresa una clase siguiente*/
return enlace; /*retorna la variable enlace*/
}
}
LISTA
package
listagenerica;
/**
*
* @author user
*/
public
class Lista { //crea la clase lista//
private Nodo primero; //crea nodo privado primero//
Nodo actual; //crea
nodo actual//
public Lista() {
actual = null; //a
nodo actual se le iguala a null/
primero=null;
//a nodo primero se le igual a primero//
}
public
boolean listaVacia (){ //crea una clase listavacia()
boolean a=false; //se
crea una variable a con un valor booleano falso//
if(primero==null){ //si
el nodo primero es igual a null //
a= true; //la
variable a se convierte a valor booleano verdadero//
}
return a; //retorna
el valor de a, al sistema//
}
public void
insertar(int v){ //crea una clase insertar con una
variable v//
Nodo anterior; //crea
un nodo anterior//
if(listaVacia() || primero.dato > v){ //determina que si listavacia o primer dato son menores que
v//
primero = new Nodo(v, primero); //al nuevo nodo(v, primero) lo iguala a primero//
}
else {//si no
Buscar el nodo de valor menor a v//
anterior = primero;
// Avanzamos
hasta el último elemento o hasta que el siguiente tenga
// un valor mayor que v
while(anterior.enlace !=null &&
anterior.enlace.dato <= v){
anterior = anterior.enlace;
}
// Creamos un nuevo nodo después del nodo
anterior, y cuyo siguiente
// es el siguiente del anterior
anterior.enlace = new Nodo(v,anterior.enlace);
}
}
public void
borrar(int v){ //crea un constructor borra con una
variable v//
Nodo anterior; //crea
un nodo anterior
Nodo nodo; //crea
un nodo llamado nodo
nodo = primero; //
a la variable primero la iguala al nodo
anterior = null;
//a null lo iguala al nodo anterior
while(nodo !=null && nodo.dato <
v) { //mientras que nodo sea diferente a null y nodo
dato sean menores que v entonces
anterior = nodo; //
a nodo lo iguala a anterior
nodo = nodo.enlace; // a nodo.enlace lo iguala a nodo
}
if(nodo == null || nodo.dato != v) return; // y si nodo es igual a null o nodo.dato es diferente a v
regresa
else { // Borrar el
nodo
if(anterior==null) // si anterior es igual a null Primer elemento
primero = nodo.enlace; //a nodo.enlace igualarlo a primero
else
// un elemento cualquiera
anterior.enlace = nodo.enlace;// de lo contrario iguala anterior enlace a nodo.enlace
nodo=null; // y elimina el nodo
}
}
public void
mostrar()
{
Nodo aux; //crea un
nodo auxiliar
aux = primero; //a
un nodo auxiliar se le igual apuntador primero
while(aux !=null) { //mientras
nodo auxiliar sea diferente a null entonces
System.out.print(aux.dato + "->
"); //imprime el nodo auxiliar y el símbolo ->
aux = aux.enlace; //y a nodo auxiliar lo iguala a auxiliar enlace para continuar el ciclo
}
System.out.println(" "); //y cuando acaba imprime un espacio
}
public void
siguiente()
{
if(actual!=null) actual = actual.enlace;
}
public void
darPrimero()
{
actual = primero;
}
public void
darUltimo()
{
actual = primero;
if(!listaVacia()){
while(actual.enlace!=null){ siguiente();}
}
}
}
No hay comentarios:
Publicar un comentario