Advertisement
Guest User

Pilha.java

a guest
Apr 26th, 2015
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.33 KB | None | 0 0
  1. package atividade_ed;
  2. public class Pilha{
  3.     private No topo;
  4.    
  5.     public Pilha(){
  6.         topo = null;
  7.     }
  8.  
  9.     public int pop(){ //remove o primeiro item da pilha
  10.         if(isEmpty()){
  11.             System.out.println("Não há elementos para renover!");
  12.             return 0;
  13.         } else {
  14.             int tmp = topo.getInfo();
  15.             topo = topo.getProx();
  16.             return tmp;
  17.         }
  18.     }
  19.  
  20.     public void push(int i){
  21.         No novo = new No(i); //Cria um novo No com i
  22.         novo.setProx(topo);  //novo se torna o topo e dá continuidade no setProx(topo)
  23.         topo = novo;         //topo recebe novo, sendo o novo topo com uma info a mais
  24.     }
  25.  
  26.     public boolean isEmpty(){
  27.         return (topo==null);
  28.     }
  29.  
  30.     //Exercicio
  31.  
  32.     public void uniao(Fila f){ //3 - Inserir uma fila no topo de uma pilha
  33.         //topo da pilha deve ser = ao inicio da fila
  34.         /*if(isEmpty()){
  35.             topo = f.getInicio();
  36.         }
  37.         else{
  38.             No tmp = topo.getProx();
  39.             topo = f.getInicio();
  40.             topo.setProx(tmp);
  41.         }*/ //tentativa 1
  42.         if(isEmpty()){
  43.             topo = f.getInicio();
  44.         }else{
  45.             //No temp =  f.getInicio();
  46.             //topo = f.getInicio(); //coloca o inicio da fila no topo da pilha
  47.             //2 tentativa porem a fila é modificda
  48.             Fila tmp = new Fila();
  49.             tmp = f;
  50.             tmp.getFim().setProx(topo);
  51.             topo = tmp.getInicio();
  52.         }  
  53.     }
  54.  
  55.     public void printP(){
  56.         No temp = topo;
  57.         System.out.print("Pilha: ");
  58.         while(temp!=null){
  59.             System.out.print(temp.getInfo()+" ");
  60.             temp = temp.getProx();
  61.         }
  62.         System.out.println();
  63.     }
  64.  
  65.     public void removePilha(Fila f){ //4 - Remove um elemento da pilha e adiciona na fila f
  66.         if(isEmpty()){
  67.             System.out.println("Nao ha elementos na pilha para remover");
  68.         }
  69.         else {
  70.             //f.enqueue(this.pop()); //adiciona o topo para a fila f
  71.             f.enqueue(topo.getInfo());
  72.             topo = topo.getProx();
  73.         }
  74.     }
  75.  
  76.     public static void unePilhas(Pilha p1, Pilha p2){//Une pilhas a e b, onde topo de p1 = topo de p2
  77.         No tmp = p2.topo; //Referencia para TOPO de p2
  78.         while(tmp.getProx()!=null){ //Enquanto o proximo no de tmp não for nulo
  79.             tmp =tmp.getProx();     //Para quando o proximo(penultimo) no de tmp for nulo
  80.         }
  81.         tmp.setProx(p1.topo);       //penultimo seta o ultimo para o TOPO de p1
  82.         p1.topo= p2.topo;           //p1 recebe uma referencia de p2.topo, que tem porultimo elemento uma referencia de tmp
  83.                                     //e tmp guarda o topo de p1
  84.         p2.topo = null;             //esvazia a lista de p1, o GC resolve o resto
  85.     }
  86.  
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement