Estrutura de Dados e Algoritmos com Java #24: Filas com Prioridade

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ธ.ค. 2024

ความคิดเห็น • 25

  • @alexandrelourenco4245
    @alexandrelourenco4245 7 ปีที่แล้ว +7

    Gente, saiu a versão do livro de estrutura de dados da Loiane em português Editora Novatec recomendo a todos.

  • @valdecirlucianodasilva7660
    @valdecirlucianodasilva7660 4 ปีที่แล้ว +3

    Ótima didática

  • @AldecirSantos-nm6pm
    @AldecirSantos-nm6pm 2 ปีที่แล้ว

    Maravilha de aula

  • @AntorchaToxica2789
    @AntorchaToxica2789 8 ปีที่แล้ว +10

    No meu tava dando erro de exceção na classe EstruturaEstatica no método adiciona(int posição, T elemento), pq tinha um if
    que impedia a adição de elementos caso a posição this.tamanho (a mensagem do erro era: não existem elementos nessa posição). Tive que comentar essa parte do código pra que o que vc ensinou nessa aula pudesse funcionar.

    • @loianegroner
      @loianegroner  8 ปีที่แล้ว +11

      oi, vc tem razão. Essa parte eu gravei mas por algum motivo não entrou na aula. O que fiz foi trocar a comparação (ainda tem o mesmo efeito) por essa aqui: if (posicao < 0 || posicao > tamanho){

    • @alvescamila87
      @alvescamila87 11 หลายเดือนก่อน

      @@loianegronerOlá! Meu código também apresentou o mesmo erro de exceção comentado acima. Verifiquei seu código no GitHub e também os comentários aqui alterando o IF classe EstruturaEstatica, no método adiciona(int posição, T elemento), para "if(posição this.tamanho)". No entanto mesmo assim não funcionou. Solução então foi comentar na classe EstruturaEstatica, no método adiciona(int posição, T elemento), o trecho do código do IF que levanta essa exceção de "IllegalArgumentException("Posição inválida!")".

    • @edmilsonferreira5204
      @edmilsonferreira5204 5 หลายเดือนก่อน

      @@alvescamila87 if (posicao < 0 && posicao > tamanho){
      throw new IllegalArgumentException("Posicao Inválida.");
      }
      eu deixei assim

  • @RR-qr2yz
    @RR-qr2yz 5 ปีที่แล้ว +6

    Esse curso vai ser concluído futuramente? Eu adorei as aulas! Obrigada por compartilhar seu conhecimento!

  • @zildateixeira4652
    @zildateixeira4652 4 ปีที่แล้ว +1

    Teria como fazer por gentileza um vídeo, de um Sistema em java .
    Projeto abaixo:
    ================================================================
    Desenvolver um sistema de controle de filas de um banco fictício utilizando a linguagem Java. Considere que neste banco há apenas uma agência e, esta agência, possui 4 caixas de atendimento.
    Os atendimentos a clientes podem ser divididos em 3 categorias:
    - Preferencial: para pessoas que possuem atendimento prioritário assegurado por lei;
    - Rápido: para pessoas que farão até 3 operações no caixa;
    - Comum: para os demais atendimentos.
    Com 3 etapas:
    1. Construção da interface, (GUI) do NetBeans de acordo com o modelo abaixo. Usando a biblioteca Swing do java.
    ---------------------------------------------------------------------------------------------------------
    Painel usuário:
    Para clientes- retirar senha (com um click)
    botão botão botão
    senha -comum senha - rápida senha- Prioritária
    =======================================================
    Painel - - (caixas)
    Chamar senhas
    botão botão botão
    botão
    caixa - 01 caixa - 02 caixa- 03 caixa- 04
    ================================================-======
    sua senha é:
    (xx- xxx) a senha aparecerá aqui
    --------------------------------------------------------------------------------------------------------------
    2. Criação da fila de atendimento.
    Semelhante às máquinas de geração de senhas, há três botões para os clientes: Preferencial, Rápido e Comum. O cliente aperta o botão de acordo com o seu atendimento, sua senha é gerada e colocada em uma fila.
    A senha deve ter a letra do tipo do atendimento (P, R ou C), seguida de um número seqüencial. A seqüência é a mesma para os diferentes tipos.
    Por exemplo, se chegarem 4 clientes, 1 sendo preferencial, 2 comuns e 1 atendimento rápido, nesta ordem, a fila será.
    P-1, C-2, C-3, R-4.
    Haverá uma única fila que será implementada com ArrayList, contendo todas as senhas geradas, que serão objetos da classe Senha, que você irá criar.
    A classe senha precisa apenas de dois atributos: o tipo e o número.
    3. Realização dos atendimentos.
    Haverá 4 caixas para atendimentos, que atenderão da seguinte forma:
    - Caixa 1: realiza os atendimentos preferenciais. Se não houver atendimentos preferenciais na fila, atende o próximo (rápido ou comum).
    - Caixas 2 e 3: atendem primeiro as senhas de atendimento rápido. Se não houver atendimento rápido, atendem o próximo da fila (prioritário ou comum).
    - Caixa 4: realiza os atendimentos comum. Se não houver atendimentos comuns na fila, atende o próximo (rápido ou prioritário).
    Cada caixa, tem o seu botão. Ao clicar no seu respectivo botão, este, deverá buscar a próxima senha a ser atendida. Na sequência, deverá exibir no painel a senha e o caixa. Por fim, o caixa deverá retirar a senha da fila. Se não houver nenhuma senha na fila, não faz nada.
    ===========================================================
    Obrigado, pela atenção!

  • @alavec
    @alavec 3 ปีที่แล้ว

    NOSSA !!! LOIANE, você é muito fera mesmo.

  • @zildateixeira4652
    @zildateixeira4652 4 ปีที่แล้ว

    Parabéns suas aulas, são Ótimas...... !!

  • @jonatantic3576
    @jonatantic3576 6 ปีที่แล้ว +2

    Você é sensacional! Parabéns amei o curso!

  • @RichardsonASilva
    @RichardsonASilva 8 ปีที่แล้ว +3

    Excelente conteúdo.

  • @AlexandreSouza-hl2sk
    @AlexandreSouza-hl2sk 5 ปีที่แล้ว

    Viciado em vossas aulas

  • @RodrigoEngelberg
    @RodrigoEngelberg 8 ปีที่แล้ว +2

    Boa didática. Qual modo de captação de áudio você utiliza? qual fone?

  • @marcosaureliohey4674
    @marcosaureliohey4674 6 ปีที่แล้ว +1

    Oi. Loiane. Depois de assistir e digitar todo o código exposto, apresentar-se o erro abaixo.
    Exception in thread "main" java.lang.NullPointerException
    at java.lang.Integer.compareTo(Unknown Source)
    at java.lang.Integer.compareTo(Unknown Source)
    at com.loiane.estruturadados.fila.FilaComPrioridade.enfileira(FilaComPrioridade.java:11)
    at com.loiane.estruturadados.fila.teste.Aula24.main(Aula24.java:11)
    Versão do Eclipse instalada
    Eclipse INDIGO - Version: 3.7.0

  • @pauloenr
    @pauloenr 3 ปีที่แล้ว

    Boa tarde Loiane, em primeiro lugar obrigado pelo ótimo curso. Segue uma dúvida: na resolução do meu exercício percebi que ao inserir mais de 9 objetos na fila de pacientes o método compareTo é acionado, mas não organiza a fila por prioridade. A organização da prioridade ocorre no momento da remoção do objeto da fila. Eu utilizei a Interface Queue com a classe PriorityQueue. Testei várias vezes debugando. Ao finalizar a adição dos objetos na fila ela ficava parcialmente desordenada, mas ao remover, todas as prioridades ficavam corretas. Esse comportamento está correto?

  • @valdecirlucianodasilva7660
    @valdecirlucianodasilva7660 4 ปีที่แล้ว +1

    Loiane esta parte ficou complicado para eu entender.
    o que esse Comparableta fazendo com elemento ?
    e esse if n intendi o que ele foi fazer la em paciente
    protected void enfileira(T elemento) {
    Comparable chave = (Comparable) elemento;
    int i;
    for(i=0; i o.getPrioridade()) {
    return 1;
    }else if(this.prioridade < o.getPrioridade()) {
    return -1;
    }
    return 0;
    }

  • @AntonioCastro-yt5cb
    @AntonioCastro-yt5cb 5 ปีที่แล้ว +1

    Ola Loiane!
    Estou a tentar baixar o codigo fonte desta aula mas nao vejo o link para tal, é que estou a tentarr copiar e executar o codigo vendo as aulas mas esta a aparecer algguns bugs, sera me podes enviar? Ja tentei entrar neste link loiane.training mas a opção de baixar não esta linkar, tambem ja me increvi e mesm assim nada.
    preciso tanto apreder lista com prieoridade e as tuas aulas são bem claras mas para eu eliminar a minha duvida so terei que ter o codigo fonte para comparar com o que copiei vendo as aulas.

    • @loianegroner
      @loianegroner  5 ปีที่แล้ว

      Oi Antonio, todo o codigo fonte fica disponível no github: github.com/loiane/estrutura-dados-algoritmos-java

  • @guilhermetuchanski
    @guilhermetuchanski 6 หลายเดือนก่อน

    Tive uma exceção de índice inexistente. Para corrigir, meu método enfileiraElemento ficou da seguinte maneira:
    @Override
    public void enfileiraElemento(T elemento) throws Exception {
    aumentarCapacidade();
    Comparable chave = (Comparable) elemento;
    int i;
    for (i = 0; i < this.tamanhoReal; i++) {
    if (chave.compareTo(this.elementos[i]) < 0) {
    break;
    }
    }
    for (int j = this.tamanhoReal - 1; j >= i; j--) {
    this.elementos[j + 1] = this.elementos[j];
    }
    this.elementos[i] = elemento;
    this.tamanhoReal += 1;
    }
    No mais, aula muito boa. Obrigado pelo curso :)

  • @eaguiar313
    @eaguiar313 7 ปีที่แล้ว +2

    Queria as aulas de árvore :c

  • @samuelassis632
    @samuelassis632 ปีที่แล้ว

    Oi professora, tive que criar um outro método chamado adicionaFila( ); pq o primeiro não estava funcionando tava dando erro de exceção: Posição Invalida ! aí fiz mais um sem o if pra conseguir terminar a aula !
    protected boolean adicionaFila(int posicao, T elemento) {
    this.aumentaCapacidade();
    for(int i = this.tamanho-1; i>=posicao; i--){
    this.elementos[i+1] = this.elementos[i];
    }
    this.elementos[posicao] = elemento;
    this.tamanho++;
    return false;
    }

    • @heightSky
      @heightSky 10 หลายเดือนก่อน

      enfrentei o mesmo erro mas acabei aplicando a solução diferente coloquei um if else após o bloco do for ::
      if (i == this.tamanho) {
      super.adiciona(elemento); // Se a fila estiver vazia ou o elemento for o maior, adiciona no final
      } else {
      super.adiciona(i, elemento); // Caso contrário, adiciona na posição correta
      }

  • @alvescamila87
    @alvescamila87 11 หลายเดือนก่อน

    [ATENÇÃO] Olá! Meu código também apresentou uma exceção. Verifiquei o código da Loiane no GitHub e fiz a alteração do IF na classe EstruturaEstatica, no método adiciona(int posição, T elemento), para "if(posição this.tamanho)". No entanto mesmo assim não funcionou. [SOLUÇÃO] Comentei na classe EstruturaEstatica, no método adiciona(int posição, T elemento), o trecho do código do IF que levanta essa exceção de "IllegalArgumentException("Posição inválida!")". Passou a funcionar.