From 0625c2115238633d24c1163cb2f5a4a3af0ac7ae Mon Sep 17 00:00:00 2001 From: pat1695 Date: Tue, 20 Aug 2019 16:10:30 -0700 Subject: [PATCH] completed --- HashSet.py | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ queues.py | 53 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 HashSet.py create mode 100644 queues.py diff --git a/HashSet.py b/HashSet.py new file mode 100644 index 00000000..68d99464 --- /dev/null +++ b/HashSet.py @@ -0,0 +1,75 @@ +class ListNode: + def __init__(self, key, val): + self.key = key + self.val = val + self.next = None + + +class MyHashSet(object): + + def __init__(self): + self.size = 1000 + self.hash = [None]*self.size + """ + Initialize your data structure here. + """ + + + def add(self, key): + index = key%self.size + #If the node at given index is None then set it with given key + if self.hash[index] == None: + self.hash[index] = ListNode(key,True) + else: + currNode = self.hash[index] + #If there are nodes at given index then traverse the linked-list and attach the key at the end. + tempHead = currNode + self.hash[index] = ListNode(key,True) + self.hash[index].next = currNode + """ + :type key: int + :rtype: None + """ + + + def remove(self, key): + index = key%self.size + #If node at given index is None then do nothing. + if self.hash[index] == None: + return + #Otherwise find given key in the linked-list at current index and set its value to False. + else: + currNode = self.hash[index] + while currNode: + if currNode.key == key: + currNode.val = False + break + currNode = currNode.next + """ + :type key: int + :rtype: None + """ + + + def contains(self, key): + index = key%self.size + #If there's no linked-list at given index then return False. + if self.hash[index] == None: + return False + #Otherwise traverse the linked-list to check if the desired element is present and its value is True. + else: + currNode = self.hash[index] + while currNode: + if currNode.key == key: + if currNode.val == True: + return True + else: + return False + currNode = currNode.next + return False + + """ + Returns true if this set contains the specified element + :type key: int + :rtype: bool + """ \ No newline at end of file diff --git a/queues.py b/queues.py new file mode 100644 index 00000000..784a0cbe --- /dev/null +++ b/queues.py @@ -0,0 +1,53 @@ +class MyQueue(object): + + def __init__(self): + self.queue = [] + """ + Initialize your data structure here. + """ + + + def push(self, x): + self.queue.append(x) + """ + Push element x to the back of queue. + :type x: int + :rtype: None + """ + + + def pop(self): + temp = [] + while self.queue: + temp.append(self.queue.pop()) + pop = temp.pop() + while temp: + self.queue.append(temp.pop()) + return pop + """ + Removes the element from in front of queue and returns that element. + :rtype: int + """ + + + def peek(self): + temp = [] + while self.queue: + temp.append(self.queue.pop()) + pop = temp[-1] + while temp: + self.queue.append(temp.pop()) + return pop + + """ + Get the front element. + :rtype: int + """ + + + def empty(self): + return len(self.queue) == 0 + """ + Returns whether the queue is empty. + :rtype: bool + """ \ No newline at end of file