chore(Python): add first in first out queue (#691)

pull/701/head
Kathy 2022-02-09 20:16:40 -05:00 committed by GitHub
parent 15dccd0a1e
commit 27cfae8f52
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 67 additions and 0 deletions

View File

@ -69,3 +69,5 @@
- [Binary Tree](trees/binary_tree.py) - [Binary Tree](trees/binary_tree.py)
- [Binary Search Tree](trees/binary_search_tree.py) - [Binary Search Tree](trees/binary_search_tree.py)
## Queues
- [First in First out Queue](queues/fifo-queue.py)

View File

@ -0,0 +1,65 @@
class FIFOqueue:
def __init__(self, item = 0) -> None:
"""
creates the FIFOqueue object given an item,
will default to 0 if no item is passed.
firstNum: any
"""
self.arr = [item]
def enqueue(self, n) -> None:
"""
adds n to the end of the queue in O(1) time
n: Any
"""
self.arr.append(n)
def dequeue(self):
"""
removes the first element from the queue and returns it in O(1) time
"""
return self.arr.pop(0)
def front(self):
"""
returns the first element of the queue in O(1) time
"""
return self.arr[0]
def rear(self):
"""
returns the last element of the queue in O(1) time
"""
return self.arr[-1]
# main
if __name__ == '__main__':
exampleFIFO = FIFOqueue(1)
# now our queue should look like [1] after initialization
print(f"queue after initialization: {exampleFIFO.arr}")
exampleFIFO.enqueue(5)
# now our queue should look like [1, 5]
print(f"queue after enqueueing 5: {exampleFIFO.arr}")
print(f"If we dequeue, we are removing {exampleFIFO.dequeue()} from the queue")
# now our queue should look like [5]
print(f"queue after dequeue: {exampleFIFO.arr}")
exampleFIFO.enqueue(7)
# now our queue should look like [5, 7]
print(f"queue after enqueueing 7: {exampleFIFO.arr}")
exampleFIFO.enqueue(8)
# now our queue should look like [5, 7, 8]
print(f"queue after enqueueing 8: {exampleFIFO.arr}")
# front
print(f"If we try looking at the front of the queue we get: {exampleFIFO.front()}")
#rear
print(f"If we try looking at the rear of the queue we get: {exampleFIFO.rear()}")