Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
RorschachVII

Java Função void MoveMenor(TipoLista Lista) que acha o menor elemento da lista

Recommended Posts

Preciso de uma ajuda com a tal situação:

Um código em Java que tem a função void MoveMenor(TipoLista Lista) que o usuário vai digitar vários elementos numa lista e essa função vai achar o menor valor e colocar ele no inicio da lista. Deverá fazer manipulação dos apontadores e imprimir cada passo do mesmo.

 

import java.util.Scanner;

public class TesteLista {

    private static class Lista {
        public int num;
        public Lista prox;
        public Lista ant;
    }

public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        Lista inicio = null;
        Lista fim = null;
        Lista aux;
        Lista anterior;


(Embaixo tenho um menu com opções de inserir o elemento no início, fim, remover, esvaziar e removê-lo).

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 31/03/2018 às 15:19, RorschachVII disse:

Preciso de uma ajuda com a tal situação

Fala ai RorschachVII, nao consegui entender aonde é que esta a sua duvida? o que seria a tal situação?

 

No aguardo

Att

Max

Compartilhar este post


Link para o post
Compartilhar em outros sites

@maxdesa E aí, beleza? Estou escrevendo um código onde preciso inserir um número no começo da lista e no fim dela. Mas preciso de uma função void que seleciona o menor número da lista e o move para o inicio, por exemplo:

50 -> 30 -> 5 -> 27 -> null

Quando eu selecionar a função de mover o menor número, ele tem que fazer isso:

5 -> 50 -> 30 -> 27 -> null

Vou ter 4 switch case: o de inserir no início, no fim, verificar toda a lista e mover o menor número para o início.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi.

Porque  o código tem que ser escrito de uma certa forma ? E se você já tem o código pronto, qual é a dificuldade ? 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Boko Moko A dificuldade é que nesse meu código quando eu adiciono um número na lista ele não está pegando o menor valor, ele sempre mostra o último número que digitei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é. Na sugestão que dei .. funciona.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Boko Moko Através do meu código, você consegue programar para ele pegar o menor elemento? Eu só preciso disso mas não estou conseguindo. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@RorschachVII Existe um ditado que um famoso programador português uma vez disse "Em se programando ... tudo dá". Ou seja, em se consertando, tudo dá. Só que tem que ser por partes porque o seu código tá um spagethi danado. Recomendo modularizar mais os programas de modo que ao consertar um módulo, você Não afeta outro que está funcionando.

 

 

Na rotina de inclusão, seu programa inteligentemente testa o novo valor a ser inserido na lista. Se ele for menor do que o menor valor, o menor valor passa a ser esse valor novo. Excelente. Como todo valor que entrar na lista passa por aí, todo valor vai ser testado contra o menor valor. Ou seja, o menor valor estará na variável "menor". Só que não basta isso.


O ideal seria você deixar numa variável do tipo Lista o elo da lista que contém o valor menor.


Uma coisa : você criou uma classe TipoLista que não é utilizada. Qual foi a ideia ? Se não se lembra porque, remova-a.

 

Outra coisa: A lista é para ser duplamente encadeada ou não ? 
Porque a estrutura da classe Lista está confusa, porém serviria para uma lista duplamente encadeada. Acontece que quando você insere um novo ítem na lista ... não trata os links para o elo anterior. Observe o código e verá que você só modifica o campo num e o campo prox. Veja como a classe Lista está 
 

public class Lista {

	private int num;   /* utilizado */
	private Lista prox; /* utilizado */ 
	private Object ant; /* definido errado e não utilizado */ 
	private Lista menor; /* definido errado e não utiliado */ 
}

Então você fala em lista duplamente encadeada, mas seu programa a trata como se fosse uma lista simples encadeada.
Recomendo modificar a classe para ser lista duplo-encadeada mesmo. Fique ligado no código que insere um novo nó para tratar corretamente os apontadores para o elo anterior.

 

Isso erá facilitar o trabalho de mover para o topo o menor valor.

 

Tente novamente e se precisar de ajuda, avise.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foto de perfil bacana parceiro...

Continue ai com os estudos, sempre acompanho aqui as duvidas tentando aprender também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×