Advertisement
Guest User

Untitled

a guest
Sep 16th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. package listaduplamenteencadeada;
  2.  
  3. public class ListaDuplamenteEncadeada {
  4.  
  5. private Caixa inicio;
  6. private Caixa cursor;
  7.  
  8. public ListaDuplamenteEncadeada() {
  9.  
  10. }
  11.  
  12. private void irParaPrimeiro() {
  13.  
  14.  
  15. if(cursor != null && inicio != null)
  16. this.cursor = this.inicio;
  17. }
  18.  
  19. private void irParaUltimo() {
  20. if(cursor != null && inicio != null)
  21. this.cursor = this.inicio.getAnt();
  22. }
  23.  
  24. private void avancarKPosicoes(int pos) {
  25.  
  26. int i = 1;
  27.  
  28. if(cursor != null && inicio != null)
  29. while (i <= pos) {
  30. cursor = cursor.getProx();
  31. i++;
  32. }
  33.  
  34. }
  35.  
  36. private void retrocederKPosicoes(int pos) {
  37.  
  38. int i = 0;
  39. int j = pos * -1;
  40.  
  41. if(cursor != null && inicio != null)
  42. while (i > j) {
  43. cursor = cursor.getAnt();
  44. i--;
  45. }
  46.  
  47. }
  48.  
  49. public boolean buscar(int valor) {
  50.  
  51. irParaPrimeiro();
  52. boolean resposta = false;
  53.  
  54. if (cursor != null) {
  55. do {
  56. avancarKPosicoes(1);
  57. if (cursor.getValor() == valor) {
  58. resposta = true;
  59. }
  60.  
  61. } while (cursor.getValor() != valor && cursor.getProx() != inicio && resposta != true);
  62. }
  63.  
  64. return resposta;
  65. }
  66.  
  67. public int acessaAtual() {
  68. int valor = 0;
  69. if(cursor != null && inicio != null)
  70. valor = cursor.getValor();
  71.  
  72. return valor;
  73. }
  74.  
  75. public void ExcluirAtual() {
  76. Caixa Anterior;
  77. Caixa Proxima;
  78. Anterior = cursor.getAnt();
  79. Proxima = cursor.getProx();
  80. Anterior.setProx(Proxima);
  81. Proxima.setAnt(Anterior);
  82. }
  83.  
  84. public void ExcluirUlt() {
  85. irParaUltimo();
  86. ExcluirAtual();
  87. }
  88.  
  89. public void ExcluirPrim() {
  90.  
  91. irParaPrimeiro();
  92. ExcluirAtual();
  93. }
  94.  
  95. public void InserirAntesDoAtual(int Valor) {
  96. retrocederKPosicoes(1);
  97. InserirAposAtual(Valor);
  98. }
  99.  
  100. public void InserirAposAtual(int valor) {
  101. Caixa nova = new Caixa(valor);
  102.  
  103. if(cursor != null && inicio != null)
  104. nova.setProx(cursor.getProx());
  105. nova.setAnt(cursor);
  106. cursor.setProx(nova);
  107. avancarKPosicoes(2);
  108. cursor.setAnt(nova);
  109. retrocederKPosicoes(1);
  110. }
  111.  
  112. public void inserirNoFim(int valor) {
  113. irParaUltimo();
  114. InserirAposAtual(valor);
  115. }
  116.  
  117. public void inserirNaFrente(int valor) {
  118. irParaPrimeiro();
  119. InserirAntesDoAtual(valor);
  120. }
  121.  
  122. public void inserirNaPosicao(int pos, int valor) {
  123.  
  124.  
  125. Caixa nova = new Caixa(valor);
  126.  
  127. if (inicio == null) {
  128. inicio = nova;
  129. }
  130.  
  131. irParaPrimeiro();
  132. avancarKPosicoes(pos - 1);
  133.  
  134.  
  135. if(cursor != null){
  136. nova.setAnt(cursor.getAnt());
  137. nova.setProx(cursor);
  138. nova.getAnt().setProx(nova);
  139. nova.getProx().setAnt(nova);
  140. cursor = nova;
  141. }
  142. }
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement