Guest User

Untitled

a guest
Oct 21st, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.20 KB | None | 0 0
  1. class Livro{
  2.     int num;
  3.     Livro prox;
  4.  
  5.     public Livro(int num){
  6.         this.num = num;
  7.         this.prox = null;
  8.     }
  9. }
  10. class ListaUnica{
  11.     Livro topo;
  12.     int tamanho;
  13.  
  14.     public ListaUnica(){
  15.         this.topo=null;
  16.     }
  17.     public void inserir(Livro livro){
  18.         if(topo == null){
  19.             this.topo = livro;
  20.             this.tamanho++;
  21.         } else {
  22.             livro.prox = topo;
  23.             this.topo = livro;
  24.             this.tamanho++;
  25.         }
  26.     }
  27.     public int remover(){
  28.         Livro antigoTopo;
  29.         if(this.topo.prox == null){
  30.             antigoTopo = this.topo;
  31.             this.topo = null;
  32.             return antigoTopo.num;
  33.         } else {
  34.             antigoTopo = this.topo;
  35.             Livro novoTopo = this.topo.prox;
  36.             this.topo.prox = null;
  37.             this.topo = novoTopo;
  38.             tamanho--;
  39.             return antigoTopo.num;
  40.         }
  41.     }
  42.     public void inverter(int quantidade){
  43.         if(topo == null){
  44.  
  45.         } else {
  46.             Livro[] trocados = new Livro[quantidade];
  47.             trocados[0] = this.topo;
  48.             for(int i=1;i<quantidade;i++){
  49.                 trocados[i] = trocados[i-1].prox;
  50.             }
  51.             Livro elo = trocados[quantidade-1].prox;
  52.             for(int i=(quantidade-1);i>0;i--){
  53.                 trocados[i].prox = trocados[i-1];
  54.             }
  55.             trocados[0].prox = elo;
  56.             this.topo = trocados[quantidade-1];
  57.         }
  58.     }
  59. }
  60. public class L1Q4 {
  61.  
  62.     /**
  63.      * @param args
  64.      */
  65.     public static void main(String[] args) {
  66.         Arquivo arquivo = new Arquivo("L1Q4.in", "L1Q4.out");
  67.         int comando = 1, caso = 0, contador = 0, quantidade = 0;
  68.         ListaUnica novaLista = new ListaUnica();
  69.         while(!arquivo.isEndOfFile()){
  70.             if(contador == 0){
  71.                 novaLista = new ListaUnica();
  72.                 caso++;
  73.                 arquivo.print("caso #"+caso+": ");
  74.                 contador++;
  75.                 quantidade = arquivo.readInt();
  76.             } else {
  77.                 while(comando != 0){
  78.                     comando = arquivo.readInt();
  79.                     switch(comando){
  80.                     case 1 :
  81.                         int novonumero = arquivo.readInt();
  82.                         Livro novoLivro = new Livro(novonumero);
  83.                         novaLista.inserir(novoLivro);
  84.                         break;
  85.                     case 2 :
  86.                         if(quantidade <= novaLista.tamanho){
  87.                             novaLista.inverter(quantidade);
  88.                         } else {
  89.                             novaLista.inverter(novaLista.tamanho);
  90.                         }
  91.                         break;
  92.                     case 3 :
  93.                         arquivo.print(novaLista.remover()+ " ");
  94.                         break;
  95.                     }
  96.                 }
  97.                 contador = 0;
  98.                 arquivo.println("");
  99.                 comando = 1;
  100.             }
  101.         }
  102.         arquivo.close();
  103.     }
  104.  
  105. }
Add Comment
Please, Sign In to add comment