Ir para conteúdo
Fórum Script Brasil

addNextLufe

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que addNextLufe postou

  1. Para a execução de um trabalho da faculdade eu preciso implementar prioridade em uma fila. O professor não está disponível para retirada de dúvidas há 4 dias e o prazo de entrega do trabalho é hoje às 23:00, alguma dica de como proceder? Me foram disponibilizados 4 arquivos, sendo 1 de teste: package br.paduan; /** * ARQUIVO 1 - App.java */ public final class App { private App() { } /** * Says hello to the world. * @param args The arguments of the program. */ public static void main(String[] args) { Lista lista = new Lista(); lista.addEnd("Huguinho"); lista.addEnd("Zezinho"); lista.addEnd("Luizinho"); lista.addStart("Patinhas"); System.out.println(lista.show()); No temp = lista.removeName("Huguinho"); System.out.println("Removeu " + temp.getName()); System.out.println(lista.show()); } } package br.paduan; /* * ARQUIVO 2 - Lista.java */ public class Lista { private No first; public Lista(){ first = null; } public boolean isEmpty(){ return first == null; } public void addEnd(String name){ No newNode = new No(name); if(isEmpty()){ first = newNode; }else{ No aux = first; while(aux.getNext() != null){ aux = aux.getNext(); } aux.setNext(newNode); } } public void addStart(String name){ if(isEmpty()){ addEnd(name); }else{ No newNode = new No(name); newNode.setNext(first); first = newNode; } } public No removeStart(){ if(isEmpty()){ return null; } No aux = first; first = first.getNext(); return aux; } public No removeEnd(){ if(isEmpty()){ return null; } No aux = first; No previous = null; while(aux.getNext() != null){ previous = aux; aux = aux.getNext(); } if(previous == null){ first = null; }else{ previous.setNext(null); } return aux; } public boolean exist(String name){ if(!isEmpty()){ No aux = first; while(aux != null){ if(aux.getName().equals(name)){ return true; } aux = aux.getNext(); } } return false; } public No removeName(String name){ if(!isEmpty()){ No aux = first; No previous = aux; while(aux != null){ if(aux.getName().equals(name)){ if(aux == first){ return removeStart(); } if(aux.getNext() == null){ return removeEnd(); } previous.setNext(aux.getNext()); return aux; } previous = aux; aux = aux.getNext(); } } return null; } public String show(){ String out = ""; No aux = first; while(aux != null){ out += aux.getName() + ";" ; aux = aux.getNext(); } return out; } } package br.paduan; /* * ARQUIVO 3 - No.java */ public class No { private String name; private No next; public No(String name){ this.name = name; next = null; } public String getName(){ return name; } public No getNext(){ return next; } public void setNext(No next){ this.next = next; } } package br.paduan; /* * ARQUIVO 4 - ListaTest.java */ import org.junit.Test; import static org.junit.Assert.*; import org.junit.Before; public class ListaTest { private FilaPriority fila; private final String name1 = "Nome1"; private final String name2 = "Nome2"; private final String name3 = "Nome3"; private final int priority1 = 1; private final int priority2 = 2; private final int priority3 = 3; @Before public void setup() { fila = new FilaPriority(); } @Test public void testIsEmpty() { boolean vazia = fila.isEmpty(); assertTrue("Uma fila nova deve iniciar vazia.", vazia); } @Test public void testNotEmpty() { fila.add(name1, priority1); boolean vazia = fila.isEmpty(); assertFalse("Uma fila com um elemento não deve estar vazia.", vazia); } @Test public void testAddEndOnEmptyList() { fila.add(name1, priority1); String out = fila.show(); String expected = name1 + "(" + priority1 + ")" + ";"; assertEquals("Após inserção deve ser exibido o nome " + name1, expected, out); } @Test public void testAddHighestPriority() { fila.add(name1, priority1); fila.add(name2, priority2); String out = fila.show(); String expected = name2 + "(" + priority2 + ")" + ";" + name1 + "(" + priority1 + ")" + ";"; assertEquals("Após inserção de dois nomes amobos deve ser exibidos respeitando a ordem", expected, out); } @Test public void testLowestPriority() { fila.add(name2, priority2); fila.add(name1, priority1); String out = fila.show(); String expected = name2 + "(" + priority2 + ")" + ";" + name1 + "(" + priority1 + ")" + ";"; assertEquals("Após inserção de dois nomes amobos deve ser exibidos respeitando a ordem", expected, out); } @Test public void testAddMiddlePriority() { fila.add(name1, priority1); fila.add(name3, priority3); fila.add(name2, priority2); String out = fila.show(); String expected = name3 + "(" + priority3 + ")" + ";" + name2 + "(" + priority2 + ")" + ";" + name1 + "(" + priority1 + ")" + ";"; assertEquals("Após inserção de dois nomes amobos deve ser exibidos respeitando a ordem", expected, out); } @Test public void testAddRepeatedPriorityOnStart() { fila.add(name1, priority1); fila.add(name3, priority3); fila.add(name2, priority2); fila.add(name3, priority3); String out = fila.show(); String expected = name3 + "(" + priority3 + ")" + ";" + name3 + "(" + priority3 + ")" + ";" + name2 + "(" + priority2 + ")" + ";" + name1 + "(" + priority1 + ")" + ";"; assertEquals("Após inserção de dois nomes amobos deve ser exibidos respeitando a ordem", expected, out); } @Test public void testAddRepeatedPriorityOnEnd() { fila.add(name1, priority1); fila.add(name3, priority3); fila.add(name2, priority2); fila.add(name1, priority1); String out = fila.show(); String expected = name3 + "(" + priority3 + ")" + ";" + name2 + "(" + priority2 + ")" + ";" + name1 + "(" + priority1 + ")" + ";" + name1 + "(" + priority1 + ")" + ";"; assertEquals("Após inserção de dois nomes amobos deve ser exibidos respeitando a ordem", expected, out); } @Test public void testAddRepeatedPriorityOnMiddle() { fila.add(name1, priority1); fila.add(name2, priority2); fila.add(name3, priority3); fila.add(name2, priority2); String out = fila.show(); String expected = name3 + "(" + priority3 + ")" + ";" + name2 + "(" + priority2 + ")" + ";" + name2 + "(" + priority2 + ")" + ";" + name1 + "(" + priority1 + ")" + ";"; assertEquals("Após inserção de dois nomes amobos deve ser exibidos respeitando a ordem", expected, out); } @Test public void testRemoveOnEmptyList() { Node removido = fila.remove(); assertEquals("Remoção de uma fila vazia deve retornar null", null, removido); } @Test public void testRemoveLastItem() { fila.add(name1, priority1); String nome = fila.remove().getName(); boolean vazia = fila.isEmpty(); assertEquals("Deve ser removido o nome que estava no início da fila", name1, nome); assertTrue("A Fila ficou fazia", vazia); } @Test public void testRemoveStart() { fila.add(name1, priority1); fila.add(name2, priority2); String nome = fila.remove().getName(); assertEquals("Deve ser removido o nome que estava no início da fila", name2, nome); } @Test public void testPeekOnEmptyQueue(){ Node primeiro = fila.peek(); assertEquals("Se a fila está fazia o primeiro elemento é null", null, primeiro); } @Test public void testPeek(){ fila.add(name1, priority1); Node primeiro = fila.peek(); assertEquals("Validando o primeiro elmento da fila", name1, primeiro.getName()); } }
×
×
  • Criar Novo...