Sunteți pe pagina 1din 4

/** * * @author Ines Rodriguez - VENEZUELA */ import java.io.*; import java.util.*; import java.math.

*; class nodo{ int numero;// variable que guarda un numero entero nodo sig; // apuntado a nodo siguiente nodo llenar_nodo( nodo nuevo, int nro){//metodo que recibe un nodo y guarda en el un entero nuevo = new nodo();// se instancia un nodo nuevo.numero = nro;// se le asigna un entero nuevo.sig = null; // se apunta a nulo return nuevo; //retorna nodo }//fin metodo }//fin clase class pila{ nodo p; // apuntador a clase nodo nodo tope; // apuntador a tope int cont;// contador boolean vacio(pila n){//metodo que verifica si pila esta vacia if(n.cont==0){// condicion del metodo return true; }else{ return false; }//fin sino }//fin metodo boolean lleno(pila n){ if(n.cont==10){ return true; }else{ return false; } }//fin metodo llenar int primero(pila n){ if(n.vacio(n)){ System.out.println("la pila esta vacia"); }else{ return n.tope.numero; } return -1; }//fin metodo

void insertar_inicio(int num) { //metodo que inserta al inicio de la pila reci bie numero y apuntador nodo nod = new nodo(); nod = nod.llenar_nodo(nod,num);// se llena el nuevo nodo nod.sig = p;//se mueve el puntero l p = nod; // } void push(pila n, int nro){ if(n.lleno(n)){ System.out.println("pila llena"); }else{ n.insertar_inicio(nro); n.tope = p; n.cont = n.cont+ 1; } }//fin metodo void eliminar_inic(){ p = p.sig; }//fin metodo void pop(pila n){ if(n.vacio(n)){ System.out.println("la pila esta vacia"); }else{ n.eliminar_inic(); n.tope=n.p; n.cont=n.cont-1; } }//fin metodo pop }//fin clase pila public class OrdenPila { static pila pila_nro = new pila(); static pila ordenar(pila n){//metodo que ordena de mayor a menor los numeros en una pila nodo sig; pila p_aux= new pila(); pila p_final= new pila(); int aux= -1; int cont_fin = n.cont; while(cont_fin != p_final.cont){//mientras no se haya apilado todos los v alores de n en p_final entra en el ciclo if(aux==-1 && !n.vacio(n)){// si aux es igual a -1 aux = n.primero(n); p_final.push(p_final, aux); n.pop(n); }

while(!n.vacio(n)){ if(n.primero(n)<= aux){ if(!p_final.vacio(p_final)){ p_aux.push(p_aux, p_final.primero(p_final)); p_final.pop(p_final); } p_final.push(p_final,n.primero(n)); aux=n.primero(n); n.pop(n); } else{ p_aux.push(p_aux,n.primero(n)); n.pop(n); } }//fin mientras n.p = p_aux.p; // la pila n se vuelve igual a la pila auxiliar p_aux.p = null; // se vacia la pila auxiliar aux = -1; }//fin mientras return p_final; }//fin metodo public static void main(String[] args) { String s="";//variable cadena q guarda una linea determinada del archivo try{ FileReader fr = new FileReader("numeros.txt");// buffer q conecta el archivo BufferedReader entrada = new BufferedReader(fr);// buffer que lee el contenido del archivo System.out.println("Leyendo numeros desordenados"); while((s = entrada.readLine()) != null)//mientras q no sea FDA { System.out.println(s); pila_nro.push(pila_nro, Integer.parseInt(s)); } System.out.println("*****************************"); } catch(java.io.FileNotFoundException fex){ System.out.println("\n\nEl archivo de entrada no fue localizado...") ; } catch(java.io.IOException ioex) { System.out.println("\n\nHa ocurrido un error grave..."); } if(!pila_nro.vacio(pila_nro)){ pila_nro = ordenar(pila_nro); }

//while(!pila_nro.vacio(pila_nro)){ System.out.println(pila_nro.primero(pila_nro)); pila_nro.pop(pila_nro); // } }

S-ar putea să vă placă și