¿QUE SON LAS LISTAS ENLAZADAS?
Son estructuras dinámicas compuestas por un conjunto de Nodos enlazados con una referencia al nodo inicial cada nodo esta compuesto por un atributo referencia dato y un atributo referencia nodo siguiente. El ultimo nodo de la lista enlazada tiene un valor null en el atributo de referencia al nodo siguiente que indica el fin de la lista.La idea es que cada componente de la lista incluya un puntero (dirección) que indique donde puede encontrarse el siguiente componente.
EJEMPLO:
Hay tres nodos creados, y queremos imprimir por pantalla el nombre del tercer estudiante
Nota: estudiantes es una variable de referencia que almacena la dirección del primer nodo.
Para ello debemos crear las clases Nodo (donde estan el dato y la dirección del siguiente nodo) y Estudiante (donde se encuentran los campos del estudiante).
public class Nodo <T>{
private T dato;
private Nodo sig;
public Nodo(T d, Nodo s) {
dato = d;
sig = s;
}
public void setSig(Nodo s){
sig = s;
}
public Nodo getSig(){
return sig;
}
public T getDato(){
return dato;
}
}
private T dato;
private Nodo sig;
public Nodo(T d, Nodo s) {
dato = d;
sig = s;
}
public void setSig(Nodo s){
sig = s;
}
public Nodo getSig(){
return sig;
}
public T getDato(){
return dato;
}
}
//Estudiante
public class Estudiante {
private String cod;
private String nom;
private String cod;
private String nom;
private String prg;
public Nodo(String cod, String nom,String prg) {
public Nodo(String cod, String nom,String prg) {
this.cod = cod;
this.nom = nom;
this.nom = nom;
this.prg = prg;
}
public void setCod(String cod){
this.cod=cod;
}
public void setNom(String nom){
public String getCod(){
return cod;
}
this.nom=nom;
}
public void setNom(String prg){
this.prg=prg;
}
return cod;
}
public String getNom(){
return nom;
}
return nom;
}
public String getPrg(){
return prg;}
}
Luego si queremos imprimir el nombre del tercer estudiante, la instrucción java seria la siguiente:
System.out.print(p.getSig().getSig().getDato().getNom());
System.out.print(p.getSig().getSig().getDato().getNom());
La cual imprime el nombre del tercer estudiante que en este caso sería Alejandra Lopez.
-Para imprimir todos los estudiantes con su código y nombre sería:
Nodo p = estudiantes;
while(p != null){
System.out.print(p.getDato.getCod());
System.out.print(p.getDato.getNom());
p=p.getSig();
}
0 comentarios:
Publicar un comentario