[ED196] Duas filas

Neste problema deverá apenas submeter uma classe ED196 contendo um método estático process como a seguir descrito (não é necessário um programa completo).

Pode assumir que terá acesso no Mooshak às classes de filas como dadas nas aulas.


Método a submeter

  • public static void process(MyQueue<String> q, MyQueue<String> a, MyQueue<String> b) da classe ED196

    Este método deve processar os elementos que vêm na fila q na forma de um nome seguido de uma operação. Consoante a operação deve fazer o seguinte:

    Por exemplo, se a fila q fosse {Luis,B,Pedro,A,Luisa,A,Joao,X,Jose,X,Miguel,B} acontecia o seguinte:

    1. Luis B - Luis é adicionado à fila b
    2. Pedro A - Pedro é adicionado à fila a
    3. Luisa A - Luisa é adicionada à fila a
    4. Joao X - Joao é adicionado à fila b, que tem apenas 1 elemento (Luis) contra os dois da fila b (Pedro e Luisa)
    5. Jose X - José descartado (ambas as filas têm 2 elementos)
    6. Miguel B - Miguel é adicionado à fila b

    No final a fila a fica com {Pedro,Luisa} e a fila b fica com {Luis,Joao,Miguel}. A fila q deve ficar vazia.


    Exemplos de input/output

    Fila q, a e b no início Fila q, a e b no final da chamada
    q = {Luis,B,Pedro,A,Luisa,A,Joao,X,Jose,X,Miguel,B}
    a = {}
    b = {}
    q = {}
    a = {Pedro, Luisa}
    b = {Luis, Joao, Miguel}
    q = {Luis,B,Pedro,B,Luisa,X,Joao,X}
    a = {}
    b = {}
    q = {}
    a = {Luisa,Joao}
    b = {Luis,Pedro}