Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
ListaDE.java /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package listade; /** * * @author joao */ public class ListaDE { private No ini; private No fim; public ListaDE() { this.ini = null; this.fim = null; } //-------------------------------------------------------------------------- public void init() { this.ini = null; this.fim = null; } //-------------------------------------------------------------------------- public void insereFinal(int num) { if (ini == null) { ini = fim = new No(num); } else { fim.setProx(new No(num)); fim.getProx().setAnt(fim); fim = fim.getProx(); } } //-------------------------------------------------------------------------- public void push(int num) { if (ini == null) { ini = fim = new No(num); } else { ini.setAnt(new No(num)); ini.getAnt().setProx(ini); ini = ini.getAnt(); } } //-------------------------------------------------------------------------- public No buscaExaustiva(int chave) { No aux = ini; while (aux != null && aux.getInfo() != chave) { aux = aux.getProx(); } return aux; } //-------------------------------------------------------------------------- private No buscaSentinela(int chave) { insereFinal(chave); No aux = ini; while (aux.getInfo() != chave) { aux = aux.getProx(); } return (aux.getProx() != null) ? aux : null; } //-------------------------------------------------------------------------- public No buscaExaustivaS(int chave) { No aux = buscaSentinela(chave); fim = fim.getAnt(); fim.setProx(null); return aux; } //-------------------------------------------------------------------------- public void remove(int info) { No aux = buscaExaustivaS(info); if (aux != null) { if (ini == fim) { init(); } else if (aux == ini) { ini = ini.getProx(); ini.setAnt(null); } else if (aux == fim) { fim = aux.getAnt(); fim.setProx(null); } else { aux.getAnt().setProx(aux.getProx()); aux.getProx().setAnt(aux.getAnt()); } } } //-------------------------------------------------------------------------- public void insercaoDireta() { No pos, i = ini.getProx(); int aux; while (i != null) { aux = i.getInfo(); pos = i; while (pos.getAnt() != null && aux < pos.getAnt().getInfo()) { pos.setInfo(pos.getAnt().getInfo()); pos = pos.getAnt(); } pos.setInfo(aux); i = i.getProx(); } } //-------------------------------------------------------------------------- public void selecaoDireta() { int menor; No i = ini, j; while (i.getProx() != null) { menor = i.getInfo(); j = i.getProx(); while (j != null) { if (j.getInfo() < menor) { menor = j.getInfo(); } j.setInfo(i.getInfo()); i.setInfo(menor); j = j.getProx(); } i = i.getProx(); } } //-------------------------------------------------------------------------- public void bubbleSort() { No i = ini, tl2 = fim; int aux; while (tl2 != null) { while (i.getProx() != null) { if (i.getInfo() > i.getProx().getInfo()) { aux = i.getInfo(); i.setInfo(i.getProx().getInfo()); i.getProx().setInfo(aux); } i = i.getProx(); } i = ini; tl2 = tl2.getAnt(); } } //-------------------------------------------------------------------------- public void shakeSort() { No tl2 = fim, inicio = ini, i = inicio; int aux; while (tl2 != inicio) { i = inicio; while (i != tl2) { if (i.getInfo() > i.getProx().getInfo()) { aux = i.getInfo(); i.setInfo(i.getProx().getInfo()); i.getProx().setInfo(aux); } i = i.getProx(); } tl2 = tl2.getAnt(); i = tl2; while (i != inicio) { if (i.getInfo() < i.getAnt().getInfo()) { aux = i.getInfo(); i.setInfo(i.getAnt().getInfo()); i.getAnt().setInfo(aux); } i = i.getAnt(); } inicio = inicio.getProx(); } } //-------------------------------------------------------------------------- public void exibe() { No aux = ini; while (aux != null) { System.out.print(aux.getInfo() + ","); aux = aux.getProx(); } } //-------------------------------------------------------------------------- } No.java /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package listade; /** * * @author joao */ public class No { private int info; private No ant; private No prox; public No() { this.ant = null; this.prox = null; } public No(int info) { this.info = info; this.ant = null; this.prox = null; } public int getInfo() { return info; } public void setInfo(int info) { this.info = info; } public No getAnt() { return ant; } public void setAnt(No ant) { this.ant = ant; } public No getProx() { return prox; } public void setProx(No prox) { this.prox = prox; } }
Compartilhar