Olá bom dia a todos!
Estou começando em java e tenho um trabalho p/ fazer: implementar uma lista encadeada sequencial em java. Eu implementei mas estou errando alguma coisa, ainda não sei o que.
Obs: os itens devem ser inseridos no início da lista.
Era p/ o programa de retornar a seguinte lista: 5 4 3 2 1
Ele retorna: 5 2 3 4 1
Não sei se é relevante falar, eu uso o Net Beans.
Veja o código:
[code]package lista2;
public class InsereInicio {
public int max,inicio=0,atual=0,proximo=1;
public int quant=0;
private int[] vet;
public InsereInicio(int n){
max = n;
vet = new int[max];
}
public void inserir(int j){
if (quant == max){
System.out.println("Lista cheia!");
}
else{
if(quant<1){
vet[inicio] = j;
quant++;
System.out.println("Inseriu: "+j);
}
else{
vet[proximo]=vet[atual];
vet[atual]=vet[inicio];
vet[inicio]=j;
quant++;
proximo++;
atual++;
System.out.println("Inseriu: "+j);
}
}
}
public void imprimir(){
System.out.println("Lista de "+max+" posições");
System.out.print("Lista: ");
for(int i = 0; i < max;i++){
if (vet[i] == 0)
System.out.print(" ");
else
System.out.print("["+vet[i]+"]");
}
System.out.println(" ");
}
}[/code]
Cógido main:
[code]package lista2;
public class Main {
public static void main(String[] args) {
InsereInicio lista = new InsereInicio(5);
lista.inserir(1);
lista.inserir(2);
lista.inserir(3);
lista.inserir(4);
lista.inserir(5);
lista.imprimir();
}
}[/code]
Obrigado!