Skip to content

Commit

Permalink
Fix iiitv#510: Add Queue [Python] (iiitv#573)
Browse files Browse the repository at this point in the history
* Add Queue [python]

* Fix Queue title in readme.md

* Small code fix & reordering Queue line in readme.md

* Resolving conflict in readme
  • Loading branch information
amineHorseman authored and singhpratyush committed Nov 2, 2017
1 parent 59f3727 commit af47a99
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ Community (college) maintained list of Algorithms and Data Structures implementa
| [AVL Tree](http://www.geeksforgeeks.org/avl-tree-set-1-insertion)|[:white_check_mark:](avl_tree/avl_tree.c)| |[:white_check_mark:](avl_tree/AvlTree.java) | | | | |
| [Binary Search Tree](https://en.wikipedia.org/wiki/Binary_search_tree) | | | [:white_check_mark:](binary_search_tree/BinarySearchTree.java) | | [:white_check_mark:](binary_search_tree/binary_search_tree.go) | | |
| [Linked List](https://en.wikipedia.org/wiki/Linked_list) | [:white_check_mark:](linked_list/linkedList.c.c) | | [:white_check_mark:](linked_list/LinkedList.java) | [:white_check_mark:](linked_list/linked_list.py) | [:white_check_mark:](linked_list/linked_list.go) | [:white_check_mark:](linked_list/linkedList.js) | [:white_check_mark:](linked_list/LinkedList.cs) |
| [Queue](https://en.wikipedia.org/wiki/Queue_(abstract_data_type)) | | | | [:white_check_mark:](queue/queue.py) | | | |
| [Stack](https://en.wikipedia.org/wiki/Stack_(abstract_data_type)) | [:white_check_mark:](stack/stack.c) | | [:white_check_mark:](stack/Stack.java) | [:white_check_mark:](stack/stack.py) | [:white_check_mark:](stack/stack.go) | [:white_check_mark:](stack/stack.js) | [:white_check_mark:](stack/Stack.cs) |
| [Trie](https://en.wikipedia.org/wiki/Trie) | | [:white_check_mark:](trie/trie.cpp) | [:white_check_mark:](trie/Trie.java) | | [:white_check_mark:](trie/trie.go) | | [:white_check_mark:](trie/Trie.cs) | |
| [Queue](https://en.wikipedia.org/wiki/Queue_(abstract_data_type)) | | | [:white_check_mark:](queue/Queue.java) | | | | | |
Expand Down
48 changes: 48 additions & 0 deletions queue/queue.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
class Queue(object):

def __init__(self):
self._list = []

def count(self):
return len(self._list)

def is_empty(self):
return self.count() == 0

def enqueue(self, item):
self._list.append(item)

def dequeue(self):
try:
return self._list.pop(0)
except IndexError:
raise IndexError('pop from empty stack')


def main():
queue = Queue()
n = 100

print('Empty queue: {0}'.format(queue.is_empty()))

while queue.count() < 5:
print('pushing elements: {0}'.format(n))
queue.enqueue(n)
n = n + 100

print('Number of items: {0}'.format(queue.count()))
print('Empty queue: {0}'.format(queue.is_empty()))

while True:
try:
print('Removing element: {0}'.format(queue.dequeue()))
except Exception as e:
print('Exception: {0}'.format(e))
break

print('Number of items: {0}'.format(queue.count()))
print('Empty queue: {0}'.format(queue.is_empty()))


if __name__ == '__main__':
main()

0 comments on commit af47a99

Please sign in to comment.