Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package listaduplamenteencadeada;
- public class ListaDuplamenteEncadeada {
- private Caixa inicio;
- private Caixa cursor;
- public ListaDuplamenteEncadeada() {
- }
- private void irParaPrimeiro() {
- if(cursor != null && inicio != null)
- this.cursor = this.inicio;
- }
- private void irParaUltimo() {
- if(cursor != null && inicio != null)
- this.cursor = this.inicio.getAnt();
- }
- private void avancarKPosicoes(int pos) {
- int i = 1;
- if(cursor != null && inicio != null)
- while (i <= pos) {
- cursor = cursor.getProx();
- i++;
- }
- }
- private void retrocederKPosicoes(int pos) {
- int i = 0;
- int j = pos * -1;
- if(cursor != null && inicio != null)
- while (i > j) {
- cursor = cursor.getAnt();
- i--;
- }
- }
- public boolean buscar(int valor) {
- irParaPrimeiro();
- boolean resposta = false;
- if (cursor != null) {
- do {
- avancarKPosicoes(1);
- if (cursor.getValor() == valor) {
- resposta = true;
- }
- } while (cursor.getValor() != valor && cursor.getProx() != inicio && resposta != true);
- }
- return resposta;
- }
- public int acessaAtual() {
- int valor = 0;
- if(cursor != null && inicio != null)
- valor = cursor.getValor();
- return valor;
- }
- public void ExcluirAtual() {
- Caixa Anterior;
- Caixa Proxima;
- Anterior = cursor.getAnt();
- Proxima = cursor.getProx();
- Anterior.setProx(Proxima);
- Proxima.setAnt(Anterior);
- }
- public void ExcluirUlt() {
- irParaUltimo();
- ExcluirAtual();
- }
- public void ExcluirPrim() {
- irParaPrimeiro();
- ExcluirAtual();
- }
- public void InserirAntesDoAtual(int Valor) {
- retrocederKPosicoes(1);
- InserirAposAtual(Valor);
- }
- public void InserirAposAtual(int valor) {
- Caixa nova = new Caixa(valor);
- if(cursor != null && inicio != null)
- nova.setProx(cursor.getProx());
- nova.setAnt(cursor);
- cursor.setProx(nova);
- avancarKPosicoes(2);
- cursor.setAnt(nova);
- retrocederKPosicoes(1);
- }
- public void inserirNoFim(int valor) {
- irParaUltimo();
- InserirAposAtual(valor);
- }
- public void inserirNaFrente(int valor) {
- irParaPrimeiro();
- InserirAntesDoAtual(valor);
- }
- public void inserirNaPosicao(int pos, int valor) {
- Caixa nova = new Caixa(valor);
- if (inicio == null) {
- inicio = nova;
- }
- irParaPrimeiro();
- avancarKPosicoes(pos - 1);
- if(cursor != null){
- nova.setAnt(cursor.getAnt());
- nova.setProx(cursor);
- nova.getAnt().setProx(nova);
- nova.getProx().setAnt(nova);
- cursor = nova;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement