Por favor me ajudem não consigo passar de simplesmente pra duplamente encadeada! la vai o codigo:
public class ListaEnc {
private Nodo desc_ini, desc_fim;
private int tamanho;
/*
* Métodos Fundamentais
*
*/
public void insereInicio(Object o) {
Nodo x = new Nodo();
x.setNo(o);
x.setProx(desc_ini);
desc_ini = x;
if(tamanho == 0)
desc_fim = desc_ini;
tamanho++;
}
public void insereFinal(Object o) {
Nodo y = desc_fim; //y recebe a ref. do ultimo nó, oriundo do desc_fim
Nodo x = new Nodo(); //cria um novo no
x.setNo(o); //atribui o objeto "o" a objeto x
x.setProx(null); //atualiza o "link" para o próximo nó
//como é insereFinal, aponta para null
y.setProx(x); //atualiza o "link" do ultimo nó com o x
desc_fim = x; //atualiza desc_fim
tamanho++; //atualiza o numero de elementos
}
public boolean isEmpty(){
if (tamanho==0)
return true;
else
return false;
}
public void removeInicio() {
if (isEmpty()){
System.out.print("Lista Vazia");}
else{
desc_ini = desc_ini.getProx();
tamanho--;
}
}
public void removeFinal() {
if (isEmpty()){
System.out.print("Lista Vazia");}
else{
Nodo x;
x = desc_ini;
while(x.getProx()!= desc_fim){
x = x.getProx();
}
x.setProx(null);
desc_fim =x;
tamanho--;
}
}
public void inserePos(Object o, int pos) {
if(isEmpty()) {
println("Lista vazia.");
} else if(pos == 0) {
insereInicio(o);
} else if (pos > tamanho) {
println("Posição fora dos limites");
} else {
Nodo x = desc_ini;
for(int i=0; i<pos-1; i++) {
x=x.getProx();
}
Nodo y = new Nodo();
y.setNo(o);
y.setProx(x.getProx());
x.setProx(y);
tamanho++;
}
}
public void removePos(int pos) {
if(isEmpty()) {
println("Lista vazia.");
} else if(pos == 0) {
removeInicio();
} else if (pos > tamanho) {
println("Posição fora dos limites");
} else {
Nodo x = desc_ini;
for(int i=0; i<pos-1; i++) {
x=x.getProx();
}
x.setProx(x.getProx().getProx());
tamanho--;
}
}
/*
* Métodos Auxiliares
*/
public void listar() {
if(desc_ini == null)
println("Lista vazia");
else {
Nodo x = desc_ini;
print("[");
while(x.getProx() != null) {
print(x.getNo()+" ");
x = x.getProx();
}
print(x.getNo()+" ");
print("]\n");
}
}
public String listar_grafico() {
String msg="";
if(desc_ini == null)
return "Lista vazia";
else {
Nodo x = desc_ini;
msg = "[";
while(x.getProx() != null) {
msg += x.getNo()+" ";
x = x.getProx();
}
msg += x.getNo();
msg += "]\n";
return msg;
}
}
public int size() {
return tamanho;
}
private void print(String s) {
System.out.print(s);
}
private void println(String s) {
System.out.println(s);
}
private void print(Object o) {
System.out.print(o);
}
private void println(Object o) {
System.out.println(o);
}
}
// Segunda parte
public class TesteListaEncadeada {
public static void main(String[] args) {
ListaEnc l = new ListaEnc();
l.insereInicio("laranja");
l.insereInicio("banana");
l.insereFinal("pera");
l.listar();
System.out.println("A lista possui "+l.size()+" elementos");
l.insereInicio("limao");
l.insereInicio("mamao");
l.listar();
l.removeInicio();
System.out.println("A lista possui "+l.size()+" elementos");
l.listar();
l.removeFinal();
System.out.println("A lista possui "+l.size()+" elementos");
l.listar();
System.out.println("A lista possui "+l.size()+" elementos");
l.inserePos("berganota",2);
l.listar();
l.removePos(0);
l.listar();
}
}
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Matheus [/color][/size] :joia: