miércoles, 2 de enero de 2013

Código java crear Cola con lista enlazada clase ColaLista


Anteriormente ya veíamos el Código java crear Pila con lista enlazada clase PilaLista, en esta ocasión veremos el código para crear una cola en java. En la pila, insertábamos datos por “encima” de la pila, y los extraíamos también por “encima”, en las colas es diferentes. Insertaremos datos por el final de la cola y los extraeremos por el inicio. Por lo que el primer dato que insertemos en la cola, será el que primero extraigamos, a diferencia en las pilas, que extraemos el último dato que introducimos.


Utilizaremos la misma clase Nodo que para la Pila y que tambien vimos como se creaba en Código java Listas Enlazadas: Añadir nodo por el principio y por el final:

public class Nodo {
private int dato;
private Nodo next;
//Codigo por www.DesarrollarAplicaciones.com
public Nodo(int dato){
this.dato=dato;
}
public int getDato() {
return dato;
}
public void setDato(int dato) {
this.dato = dato;
}
public Nodo getNext() {
return next;
}
public void setNext(Nodo next) {
this.next = next;
}
public String toString(){
String s=" "+dato+" ";
return s;
}
}

La clase que crearé ahora se llama ColaLista con los métodos insertar(), extraer(), estaVacia(), contar() y toString() y este es su código:

public class ColaLista {
private Nodo inicio;
private Nodo termino;
//Codigo por www.DesarrollarAplicaciones.com
public ColaLista(){
inicio=null;
termino=null;
}
public void insertar(int dato){
Nodo i=new Nodo(dato);
i.setNext(null);
if(inicio==null & termino==null){
inicio=i;
termino=i;
}
termino.setNext(i);
termino=termino.getNext();
}
public int extraer(){
int dato=inicio.getDato();;
inicio=inicio.getNext();
return dato;
}
public boolean estaVacia(){
boolean cola=false;
if(inicio==null & termino==null){
cola=true;
System.out.println("La cola esta vacia");
}
else{
System.out.println("La cola no esta vacia");
cola=false;
}
return cola;
}
public int contar(){
int contador=0;
Nodo c=this.inicio;
while(c!=null){
contador++;
c=c.getNext();
}
System.out.println("Numero de datos en la cola: "+contador);
return contador;
}
public String toString(){
Nodo c=this.inicio;
String s="";
while(c!=null){
s=s+c.toString();
c=c.getNext();
}
return s;
}
public static void main(String[] args){
ColaLista cola1=new ColaLista();
cola1.insertar(46);
cola1.insertar(12);
cola1.insertar(87);
cola1.insertar(125);
cola1.insertar(30);
cola1.extraer();
cola1.estaVacia();
cola1.contar();
System.out.println(cola1.toString());
}
}

Como ves, los datos, en este caso de tipo int (enteros) se van insertando por el final y cuando extraemos uno lo hacemos por el principio. Es decir, extraemos primer dato introducido. He creado tambien el main dentro de la clase ColaLista para probarlo.

No hay comentarios:

Publicar un comentario