GARANTIR DESCONTO

Fórum Lista encadeada Em java, como inserir no meio? #579619

01/04/2017

0

/*
* 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 exemplo;

import java.util.Scanner;

public class Exemplo
{
private static class exemplo
{
public int num;
public exemplo prox; // prox - ponteiro para proximo endereço
}

public static void main(String[] args)
{
Scanner entrada = new Scanner(System.in);
exemplo inicio = null;
exemplo meio = null;
exemplo fim = null;
exemplo aux;
exemplo anterior;
int op, val;
do{
System.out.println("\\nMenu de opções\\n");
System.out.println("1-Inserir no início da lista");
System.out.println("2-Inserir no meio da lista");
System.out.println("3-Inserir no fim da lista");
System.out.println("4-Consultar toda lista");
System.out.println("5-Excluir um valor");
System.out.println("6-Esvaziar a lista");
System.out.println("7-Sair");
System.out.print("Digite sua opção: ");
op = entrada.nextInt();
switch(op)
{
case 1:
System.out.print("\\nDigite o número a ser inserido no inicio da lista: ");
exemplo novo = new exemplo();
novo.num = entrada.nextInt();
if(inicio == null)
{
inicio = novo;
fim = novo;
novo.prox = null;
}
else
{
novo.prox = inicio;
inicio = novo;
}
System.out.println("Número inserido no inicio da lista!\\n");
break;

case 2:
System.out.print("\\nDigite o número a ser inserido no meio da lista:");
exemplo novo1 = new exemplo();
novo1.num = entrada.nextInt();
aux = inicio;
anterior = null;
while(aux!=null)
{
if(aux.num<= novo1.num)
{
anterior = aux;
aux = aux.prox;
}
else
{
anterior.prox=novo1;
novo1.prox = aux;

}
}
System.out.println("Número inserido no meio da lista!\\n");
break;


case 3:
System.out.print("\\nDigite o número a ser inserido no fim da lista: ");
exemplo novo2 = new exemplo();
novo2.num = entrada.nextInt();
if(inicio == null)
{
inicio = novo2;
fim = novo2;
novo2.prox = null;
}
else
{
aux=fim;
aux.prox=novo2;
novo2.prox = null;
fim = novo2;
}
System.out.println("Número inserido no fim da lista!\\n");
break;
case 4:
aux=inicio;
if(inicio==null)
{
System.out.println("\\nA lista está vazia!");
}
else
{
System.out.println("\\n--------------------------------------------");
System.out.println("Inicio da lista: "+inicio.hashCode()+"\\n");
while(aux!=null)
{
if(aux.prox!=null)
System.out.print(aux.hashCode() +" --> "+aux.num+" --> "+aux.prox.hashCode()+"\\n");

else if (aux.prox!=null){
System.out.print(aux.hashCode() + " --> " +aux.num+ " --> "+aux.prox.hashCode()+"\\n");
aux=aux.prox;}

else
System.out.print(aux.hashCode() +" --> "+aux.num+" --> "+aux.prox+"\\n");
aux=aux.prox;
}
System.out.println("\\nFim da lista: "+fim.hashCode());
System.out.println("--------------------------------------------");
}
break;
case 5:
anterior = null;
aux=inicio;
if(inicio==null)
{
System.out.println("\\nA lista está vazia!");
}
else
{
System.out.println("\\nDigite o valor a ser excluido: ");
val = entrada.nextInt();
aux = inicio;
while(aux!=null)
{
if(aux.num!=val)
{
anterior = aux;
aux = aux.prox;
}
else
{
if(anterior==null)
{
inicio=aux.prox;
}
else
{
anterior.prox = aux.prox;
}
break;
}
}
}
break;
case 6:
aux=inicio;
if(inicio==null)
{
System.out.println("\\nA lista já está vazia!");
}
else
{
inicio=null;
System.out.println("\\nA lista foi esvaziada!");
System.out.println("Inicio da lista: "+inicio+"\\n");
}
break;
case 7:
System.out.println("\\nPrograma encerrado!\\n");
break;
default:
System.out.println("\\nOpção inválida!!!");
System.out.println("Digite novamente!\\n");
}
}while(op!=6);
}
}
Leandro Arnold

Leandro Arnold

Responder

Posts

02/04/2017

Daniel Araújo

Bom dia Leandro!

Vê se isso te ajuda:
https://www.caelum.com.br/apostila-java-estrutura-dados/listas-ligadas/

Daniel Araújo
Sombra Tecnologia
Consultoria e Desenvolvimento de Sistemas
sombra.tecnologia@gmail.com
55 85 98135-5516
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar