LISTAS:
Una lista es una estructura de datos dinámica que cumple las
siguientes características:
Dispone de un numero variable de elementos (desde cero hasta
"n"). Su tamaño únicamente se limita por la cantidad de memoria que
haya disponible en el sistema. Si la lista tiene cero elementos recibe el
nombre de "Lista vacía".
El primer elemento de la lista, cuando ésta no está vacía es
conocido y se puede acceder a él siempre que se desee.
Los elementos de la lista guardan una relación de orden (o
precedencia), de forma que para cada uno de ellos es posible saber cual es su
"elemento siguiente".
clase nodo
public class Nodo{
private "argumentos"
private Nodo sig;
}
public class Nodo{
private estudiante dato;
private Nodo sig;
}
Cuando la vairable apunta a un objeto tiene derecho sobre el objeto a obtener y modificar
_________________________________________________________________________________
la salida seria System.out.println(Estudiantes.getsig().getsig().getdato().getnombre){
Nodo p= estudiantees;
p= p.getsig;
while (p!=null){
System.out.println(p.getdato().getcod());
System.out.println(p.getdato().getnom());
}
}
_______________________________________________________________________________
TIPOS DE LISTAS:
Lista simplemente enlazada
Lista doblemente enlazada
Lista circular
Lista circular
LISTA SIMPLEMENTE ENLAZADA
Las listas enlazadas son aquellas listas cuyos elementos se encuentran almacenados en posiciones de memoria. Cada nodo está formado por un mínimo de dos campos:
SIMPLE CIRCULAR
LISTA DOBLEMENTE ENLAZADA
Las listas doblemente enlazadas son estructuras de datos
semejantes a las listas enlazadas simples.
La asignación de memoria es hecha al
momento de la ejecución.
En cambio, en relación a la listas enlazada simple el
enlace entre los elementos se hace gracias a dos punteros (uno que apunta hacia
el elemento anterior y otro que apunta hacia el elemento siguiente).
DOBLEMENTE CIRCULAR
LISTA CIRCULAR
Se caracterizan porque el campo puntero del último nodo, en
lugar de apuntar a un valor Nulo, apunta al primer nodo o elemento de la lista,
convirtiéndose en una estructura de datos circular.
OPERACIONES EN LISTAS ENLAZADAS
Insertar
- inicio
- final
- inicio
- final
- insertar antes
- insertar despues
- eliminar
INSERTAR
AL INICIO (SIMPLE)
primero crear el nodo
dato,sig
p= new nodo(d , p)
DOBLE
dato,ant, sig
p.setAnt(new NodoDoble(d, null, p));
p=p.getAnt();
INSERTAR
AL FINAL (SIMPLE)
if(inicio!= null){
fin.setsig(new Nodo(d,null));
fin=fin.getsig();
}else{
inicio = fin = nwe Nodo (d, null);
DOBLE
if (inicio!= null){
fin.setsig(new nodoDoble(d, fin, null));
fin=fin.getsig();
}else{
inicio=fin=new nodoDoble(d, null, null);
________________________________________________________________________________
ELIMINAR
AL FINAL (SIMPLE)
if (inicio!= null){
inicio= inicio.getsig();
}else{
System.out.println("lista vacia");
}
AL FINAL (DOBLE)

if (inicio!= null){
inicio=inicio.getsig();
inici.detAnt(null);
}else{
System.out.println("lista vacia");
}
}
AL FINAL (SIMPLE)
if (inicio!=null){
nodo actual=inicio;
while (actual.getsig()!=fin){
actual=actual.getsig();
}
actual.setsig(null);
fin=actual;
}else{
System.out,println("lista vacia");
}
AL FINAL (DOBLE)
if(inicio!=null){
fin=fin.getAnt();
fin.setsig(null);
}else{
System.out,println("lista vacia");
}
_________________________________________________________________________________
BUSCAR PARA (INSERTAR ANTES)
BUSCAR PARA (INSERTAR ANTES)
Nodo anterior = null;
Nodo actual= inicio;
while (actual !=null && xclave.compareto(Actual.getclave())!=0){
} anterior actual;
actual = actual.getsig();
if (actual!=null){
if (actual == inicio){
inicio=new nodo(d, inicio);
}else{
anterior.setdig(new nodo(d, actual());
}else{
System.out,println("lista vacia")
CONSULTAR
if (actual!= null){
actual.setsig(new Nodo(xdato, xclave, actual.getsig()));
if (actual== fin){
fin=fin.getsig();
}else{
System.out,println("lista vacia")
}
ELIMINAR
if (actual!=null){
if(actual==inicio){
inicio=inicio.getsig();
}else{
anterior.setsig(actual.getsig());
if (actual==fin){
}
}else{
System.out,println("Dato no encontrado");
}
MODIFICAR
if (actual !=null){
estudiante e= actual.getDato();
e.set{ cod(xcod);
nom(xnom);
prog(xprog);
}else{
System.out,println("Dato no encontrado");
}
_________________________________________________________________________________
No hay comentarios.:
Publicar un comentario