Sei sulla pagina 1di 4

DECLARACION DE UNA LISTA ENLAZADA

Declaramos una clase con el nombre Nodo


 Dato
 Enlace
El constructor inicializa al objeto Nodo.

La visibilidad de los dos campos del nodo, tienen la visibilidad por


defecto para que los métodos que implementan las operaciones de las
listas, puedan acceder a ellos.

Class Nodo
{
int dato;
Nodo enlace;
Public Nodo(int t)
{
dato = t;
enlace = null;
}

Class Elemento
{
///….
}
Class Nodo
{
Elemento dato;
Nodo enlace;
}

CONSTRUCCION DE UNA LISTA


public class Nodo{
private int dato;
private Nodo enlace;

public Nodo(int x){


dato = x;
enlace = null;
}
public Nodo(int x, Nodo n){
dato = x;
enlace = n;
}
public int getDato(){
return dato;
}
public Nodo getEnlace(){
return enlace;
}
Pubic void setEnlace(Nodo enlace){
This.enlace=enlace;
}

INSERCIÓN DE UN ELEMENTO A LA LISTA

Public lista insertarcavezalista(int entrada)


{
Nodo nuevo;
nuevo = new Nodo(entrada);
nuevo.enlace = primero; // Enlaza el nuevo nodo al frente de la lsita
primero = nuevo; // nuevo primero y apunta al nuevo nodo
return this; // devuelve la referencia del objeto de la lista

INSERCIÓN AL FINAL DE LA LISTA


Esta inserción es menos eficiente, debido a que hay que ir recorriendo
toda la lista, hasta llegar al nodo final.

public Lista insertarUltimo(Nodo ultino, int entrada)


{
ultimo.enlace = new Nodo(entrada);
ultimo = ultimo.enlace;
return this;
}

INSERCION ENTRE DOS NODOS DE LA LISTA


Se crea un nuevo nodo con el dato 75
public Lista insertarLista(int testigo, int entrada)
{
Nodo nuevo, anterior;
Anterior = buscarLista(testigo);
if(anterior != null)
{
nuevo = new Nodo (entrada);
nuevo.enlace = anterior.enlace;
anterior.enlace = nuevo;
}
return this;
}

ELIMINACION DE UN NODO DE LA LISTA

public void eliminar (int entrada){


Nodo actual, anterior;
Boolean encontrado;
//inicializaremos los apuntadores
actual = primero;
anterior = null;
encontrado = false;
// búsqueda del nodo y del nodo anterior
while((actual!=null) && (!encontrado)){
encontrado =(actual.dato == entrada);
// con objetos actual.dato.equals(entrada)

if(!encontrado){
anterior=actual;
actual=actual.enlace;
}
}
// Enlace del nodo anterior con el siguiente
if(actual !=null){
//Distingue entre que el nodo sea cabecera o el resto de la lista
if(actual == primero){
primero=actual.elace;
}else{
anterior.enlace=actual.enlace;
}
actual=null;
}
}
MOSTRAR UN NODO DE LA LISTA

void visualización (Lista * lista){


Element *actual;
actual = lista->inicio;
while (actual != NULL){
printf ("%p - %s\n", actual, actual->dato);
actual = actual->siguiente;
}
}

Potrebbero piacerti anche