|
1 | 1 | class Queue:
|
2 |
| - """Representação de um estrutura de fila estática sequencial circular em Python3 (sem prioridade)""" |
| 2 | + """Class to represent a circular sequencial static in Python3 (without priority)""" |
3 | 3 |
|
4 | 4 | def __init__(self, maximum):
|
5 |
| - self.max = maximum # Tamanho máximo da fila |
6 |
| - self.queue = [None] * maximum # Fila iniciada com tamanho definido |
7 |
| - self._front = 0 # Define o elemento que deverá sair primeiro da fila |
8 |
| - self._size = 0 # Atributo privado que diz o nº de elementos na fila |
9 |
| - self._back = 0 # Define o último elemento da fila |
| 5 | + self.max = maximum # The maximum queue size |
| 6 | + self._queue = [None] * maximum # Empty queue |
| 7 | + self._front = 0 # The first element of queue |
| 8 | + self._size = 0 # The size of queue |
| 9 | + self._back = 0 # The last element of queue |
10 | 10 |
|
11 | 11 | @property
|
12 | 12 | def max(self):
|
13 |
| - """Retorna o valor do atributo max""" |
| 13 | + """Getters to maximum table size""" |
14 | 14 | return self._max
|
15 | 15 |
|
16 | 16 | @max.setter
|
17 | 17 | def max(self, maximum):
|
18 |
| - """Garante que max tenha um valor inteiro""" |
| 18 | + """Setters to maximum table size""" |
19 | 19 | if isinstance(maximum, int):
|
20 | 20 | self._max = maximum
|
21 | 21 | else:
|
22 | 22 | raise Exception("Atributo deve ser um número inteiro")
|
23 | 23 |
|
24 | 24 | def enqueue(self, elem):
|
25 |
| - """Adiciona um elemento ao fim da fila""" |
26 |
| - if self._size == self.max: # Verifica se a fila está cheia |
27 |
| - raise Exception("Fila Cheia!") |
28 |
| - self.queue[self._back] = elem |
29 |
| - self._back = (self._back + 1) % self.max # Garante uma fila circular |
| 25 | + """Append a new element in the end of queue""" |
| 26 | + if self._size == self.max: # Verifys if the queue is full |
| 27 | + raise Exception("Full queue!") |
| 28 | + self._queue[self._back] = elem |
| 29 | + self._back = (self._back + 1) % self.max # Ensures a circular queue |
30 | 30 | self._size += 1
|
31 | 31 |
|
32 | 32 | def dequeue(self):
|
33 |
| - """Retira o primeiro elemento da fila""" |
34 |
| - if self._size == 0: # Verifica se a fila está vazia |
35 |
| - raise Exception("Fila Vazia!") |
36 |
| - elem = self.queue[self._front] |
37 |
| - self.queue[self._front] = None |
38 |
| - self._front = (self._front + 1) % self.max # Garante uma fila circular |
| 33 | + """Removes the first element from the queue""" |
| 34 | + if self._size == 0: # Verifys if the queue is empty |
| 35 | + raise Exception("Empty queue") |
| 36 | + elem = self._queue[self._front] |
| 37 | + self._queue[self._front] = None |
| 38 | + self._front = (self._front + 1) % self.max # Ensures a circular queue |
39 | 39 | self._size -= 1
|
40 | 40 | return elem
|
41 | 41 |
|
42 | 42 | def length(self):
|
43 |
| - """Retorna a quantidade de elementos na fila""" |
| 43 | + """Returns the size of queue""" |
44 | 44 | return self._size
|
45 | 45 |
|
46 | 46 | def first(self):
|
47 |
| - """Retorna o valor do primeiro elemento da fila""" |
| 47 | + """Returns the first element from queue""" |
48 | 48 | if self._size == 0:
|
49 |
| - raise Exception("Fila vazia") |
50 |
| - return self.queue[self._front] |
| 49 | + raise Exception("Empty queue") |
| 50 | + return self._queue[self._front] |
51 | 51 |
|
52 | 52 | def last(self):
|
53 |
| - """Retorna o valor do último elemento da fila""" |
| 53 | + """Returns the last element from queue""" |
54 | 54 | if self._size == 0:
|
55 |
| - raise Exception("Fila vazia") |
56 |
| - return self.queue[self._back-1] |
| 55 | + raise Exception("Empty queue") |
| 56 | + return self._queue[self._back-1] |
57 | 57 |
|
58 | 58 | def empty(self):
|
59 |
| - """Verifica se a lista está vazia""" |
| 59 | + """Verifys if the queue is empty""" |
60 | 60 | if self._size == 0:
|
61 | 61 | return True
|
62 | 62 | return False
|
63 | 63 |
|
64 | 64 | def __del__(self):
|
65 |
| - """Método destrutor""" |
| 65 | + """Destructor method""" |
66 | 66 |
|
67 | 67 | def __str__(self):
|
68 |
| - """Representa a fila excluindo os obj NoneType""" |
| 68 | + """Method for representing the queue, excluding NoneType objects (user)""" |
69 | 69 | tam = f"\033[1;32m{self.max}\033[0;0m"
|
70 | 70 | rep = f"[{tam}]\033[1;31mfirst\033[0;0m -> "
|
71 | 71 | cont = self._front
|
72 | 72 | for _ in range(self._size):
|
73 | 73 | if cont == self.max:
|
74 | 74 | cont = 0
|
75 |
| - rep += f"{self.queue[cont]} -> " |
| 75 | + rep += f"{self._queue[cont]} -> " |
76 | 76 | cont += 1
|
77 | 77 | rep += "\033[1;34mNone\033[0;0m"
|
78 | 78 | return rep
|
79 | 79 |
|
80 | 80 | def __repr__(self):
|
| 81 | + """Method for representing the queue, excluding NoneType objects (developer)""" |
81 | 82 | return str(self)
|
0 commit comments