Advertisement
Guest User

Untitled

a guest
May 3rd, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. public class Lista {
  2. private int nElementos;
  3. private No cabeca;
  4. private class No {
  5. No( Carta e ) {
  6. item = e; // o item passa a ser o elemento
  7. prox = null; // o nó é inicializado com
  8. // prox a null (não há próximo)
  9. }
  10. No prox;
  11. Carta item;
  12. }
  13. public void inserirCabeca( Carta e ){
  14. No novoNo = new No( e );
  15. novoNo.prox = cabeca;
  16. cabeca = novoNo;
  17. nElementos++;
  18. }
  19. public void inserirCauda( Carta e ){
  20. No novoNo = new No( e );
  21. if( cabeca == null ) {
  22. cabeca = novoNo;
  23. nElementos++;
  24. return;
  25. }
  26. No ultimo = cabeca;
  27. while( ultimo.prox != null )
  28. ultimo = ultimo.prox;
  29. ultimo.prox = novoNo;
  30. nElementos++;
  31. }
  32. public void inserirOrdem( Carta e ) {
  33. No novoNo = new No( e );
  34. No actual = cabeca;
  35. No anterior = null;
  36. // procurar o local onde inserir
  37. while( actual != null && actual.item.compareTo( e ) < 0 ) {
  38. anterior = actual;
  39. actual = actual.prox;
  40. }
  41. novoNo.prox = actual;
  42. if( anterior == null )
  43. cabeca = novoNo;
  44. else
  45. anterior.prox = novoNo;
  46. nElementos++;
  47. }
  48. public void retirar( int idx ){
  49. if( !eIndiceValido( idx ) )
  50. throw new ArrayIndexOutOfBoundsException( idx );
  51. No actual = cabeca;
  52. No anterior = null;
  53. int pos = 0;
  54. while( actual != null && pos < idx ) {
  55. anterior = actual;
  56. actual = actual.prox;
  57. pos++;
  58. }
  59. if( anterior != null )
  60. anterior.prox = actual.prox;
  61. else
  62. cabeca = actual.prox;
  63. nElementos--;
  64. }
  65. private boolean eIndiceValido(int idx) {
  66. return idx < nElementos && idx >= 0;
  67. }
  68.  
  69. public String toString(){
  70. String output = "";
  71. No actual = cabeca;
  72.  
  73. do{
  74. output += actual.item.toString()+"\n";
  75. actual = actual.prox;
  76. }while(actual != null);
  77.  
  78. return output;
  79. }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement