Lista exercicios poo
1) Implemente uma operação na classe FilaSemTDA para receber um vetor e inserir os elementos do vetor na fila. Dica: (i) considere que o vetor está totalmente preenchido; (ii) você pode utilizar o vetor em uma operação de inicialização da fila a partir dos elementos do vetor. Crie uma classe executável (TestaFila) para testar a operação criada!
2) Usando as operação em PilhaSemTDA e FilaSemTDA, acrescente uma operação à FilaSemTDA para reverter a ordem dos elementos da fila. Dica: (i) crie uma pilha vazia em PilhaSemTDA para receber os elementos da fila; (ii) use as operações já implementadas nestas classes para resolver o problema que se pede; (iii) lembre-se que para acessar as operações estáticas das classes acima deve-se seguir a sintaxe: . , exemplo: FilaSemTDA.desenfileira() Crie uma classe executável (TestaFila) para testar a operação criada!
3) Duas pilhas podem coexistir em um mesmo vetor, uma crescendo em um sentido, e a outra, no outro, conforme ilustra o esquema abaixo. Projete e implemente as operações estáticas da classe PilhaDuplaSemTDA que mantêm duas pilhas em um único vetor. Dica: (i) considere que o usuário das operações queira informar com qual das pilhas (p1 ou p2) ele deseja trabalhar. Para isso implemente operações do tipo: empilhaP1(), empilhaP2(), etc. na classe criada. Crie uma classe executável (TestaPilhaDupla) para testar todas as operações da classe PilhaDuplaSemTDA! Sugestão: crie uma pilha dupla para armazenar caracteres (Character) e numeros (Double ou Integer, etc.) 0 x
1
1
X2
. . .
Vetor de elementos da pilha dupla
topo1 - 1 topo2 - 1 maxTam – (n – 1)
Xn
yn yn-1 . . .
maxTam - 2 maxTam - 1
y2 y1
4) Existem partes de sistemas operacionais que cuidam da ordem em que os programas devem ser executados. Por exemplo, em um sistema de computação de tempo-compartilhado (“time-shared”) existe a necessidade de manter um conjunto de processos em uma fila,