Você está na página 1de 3

Ano Letivo: 2023.

2 Turno: Noturno Classe: 46104

Curso: ENGENHARIA DE SOFTWARE Fase: 2ª Fase

Componente Curricular: ESTRUTURA DE DADOS Professor(a): RODRIGO C. N. MACIEL

RESOLUÇÃO LISTA DE EXERCÍCIOS 05: FILAS

1. Implementar em linguagem Python o pseudocódigo do algoritmo “Fila” visto na Aula 05 com


capacidade igual a quantidade de caracteres que compõem seu primeiro nome. Faça também:
class FilaCircular:

def __init__(self, capacidade):


self.__capacidade = capacidade
self.__inicio = 0
self.__final = -1
self.__numero_elementos = 0
self.__valores = ['']*capacidade

def __fila_vazia(self):
return self.__numero_elementos == 0

def __fila_cheia(self):
return self.__numero_elementos == self.__capacidade

def enfileirar(self, valor):


if self.__fila_cheia():
print('A fila está cheia')
return

if self.__final == self.__capacidade - 1:
self.__final = -1
self.__final += 1
self.__valores[self.__final] = valor
self.__numero_elementos += 1

def desenfileirar(self):
if self.__fila_vazia():
print('A fila já está vazia')
return

temp = self.__valores[self.__inicio]
self.__inicio += 1
if self.__inicio == self.__capacidade:
self.__inicio = 0
self.__numero_elementos -= 1
return temp

def primeiro(self):
if self.__fila_vazia():
return -1
return self.__valores[self.__inicio]
a. Teste o método “filaVazia()” através do método “desenfileirar()”;
fila = FilaCircular(7)
fila.desenfileirar()
A fila já está vazia

b. Demonstrar o enfileiramento de cada um dos caracteres que compõem seu primeiro nome;
fila.enfileirar('r')
fila.enfileirar('o')
fila.enfileirar('d')
fila.enfileirar('r')
fila.enfileirar('i')
fila.enfileirar('g')
fila.enfileirar('o')
c. Teste o método “filaCheia()” através do método “enfileirar(valor)”;
fila.enfileirar('a')
A fila está cheia

d. Após executar as operações anteriores, demonstrar qual elemento é o primeiro da fila;


fila.primeiro()
‘r’
e. Execute o método “desenfileirar()” por três vezes e verifique qual elemento é o primeiro da fila.
fila.desenfileirar()
fila.desenfileirar()
fila.desenfileirar()
fila.primeiro()
‘r’
2. O problema de inserir (enfileirar) elementos em uma Fila envolve?

R: controlar os atributos “final” e “número de elementos”.

3. O problema de retirar (desenfileirar) elementos em uma fila envolve?

R: controlar os atributos “inicio” e “número de elementos”.

4. Qual critério é utilizado para saber se uma Fila está vazia?

R: se elementos = 0

5. Qual critério é utilizado para saber se uma Fila está cheia?

R: se elementos = capacidade

6. Considere a Fila:

S A

a. Insira a sequência T,C na Fila e demonstre esse procedimento através do preenchimento da


tabela abaixo:

final elementos

0 3

1 4
b. Qual o valor do atributo “final” após a inserção da sequência descrita no item a)?
R: 1
c. Se você fosse “desenfileirar” um elemento da Fila, qual seria esse elemento?
R: S
d. Desenfileirar dois elementos da fila e demonstrar esse procedimento através da tabela abaixo:

início elementos

3 3

0 2

Você também pode gostar