Skip to content

Commit ac89851

Browse files
updated circular queue
1 parent 9636cc4 commit ac89851

File tree

1 file changed

+31
-30
lines changed

1 file changed

+31
-30
lines changed

Circular Queue.py

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,82 @@
11
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)"""
33

44
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
1010

1111
@property
1212
def max(self):
13-
"""Retorna o valor do atributo max"""
13+
"""Getters to maximum table size"""
1414
return self._max
1515

1616
@max.setter
1717
def max(self, maximum):
18-
"""Garante que max tenha um valor inteiro"""
18+
"""Setters to maximum table size"""
1919
if isinstance(maximum, int):
2020
self._max = maximum
2121
else:
2222
raise Exception("Atributo deve ser um número inteiro")
2323

2424
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
3030
self._size += 1
3131

3232
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
3939
self._size -= 1
4040
return elem
4141

4242
def length(self):
43-
"""Retorna a quantidade de elementos na fila"""
43+
"""Returns the size of queue"""
4444
return self._size
4545

4646
def first(self):
47-
"""Retorna o valor do primeiro elemento da fila"""
47+
"""Returns the first element from queue"""
4848
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]
5151

5252
def last(self):
53-
"""Retorna o valor do último elemento da fila"""
53+
"""Returns the last element from queue"""
5454
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]
5757

5858
def empty(self):
59-
"""Verifica se a lista está vazia"""
59+
"""Verifys if the queue is empty"""
6060
if self._size == 0:
6161
return True
6262
return False
6363

6464
def __del__(self):
65-
"""Método destrutor"""
65+
"""Destructor method"""
6666

6767
def __str__(self):
68-
"""Representa a fila excluindo os obj NoneType"""
68+
"""Method for representing the queue, excluding NoneType objects (user)"""
6969
tam = f"\033[1;32m{self.max}\033[0;0m"
7070
rep = f"[{tam}]\033[1;31mfirst\033[0;0m -> "
7171
cont = self._front
7272
for _ in range(self._size):
7373
if cont == self.max:
7474
cont = 0
75-
rep += f"{self.queue[cont]} -> "
75+
rep += f"{self._queue[cont]} -> "
7676
cont += 1
7777
rep += "\033[1;34mNone\033[0;0m"
7878
return rep
7979

8080
def __repr__(self):
81+
"""Method for representing the queue, excluding NoneType objects (developer)"""
8182
return str(self)

0 commit comments

Comments
 (0)