-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdataStructures.py
More file actions
77 lines (70 loc) · 1.35 KB
/
dataStructures.py
File metadata and controls
77 lines (70 loc) · 1.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
"""
You are given the following classes
"""
class Node():
def __init__(self, value=None, next=None):
self.value = value
self.next = next
class TreeNode:
def __init__(self, value=None, left=None, right=None):
self.value = value
self.left = left
self.right = right
"""
1) Implement a stack with push and pop functions
Difficulty: 4
"""
class Stack():
def __init__(self, top=None):
self.top = top
def push(self, elem):
pass
def pop(self):
pass
#tests:
# s = Stack()
# s.push(4)
# s.push(5)
# assert s.pop() == 5
# s.push(6)
# assert s.pop() == 6
# assert s.pop() == 4
# assert s.pop() == None
"""
2) Implement a queue with queue and dequeue functions
Difficulty: 6
"""
class Queue():
def __init__(self, first=None, last=None):
self.first = first
self.last = last
def queue(self, elem):
pass
def dequeue(self):
pass
#tests:
# q = Queue()
# q.queue(4)
# q.queue(5)
# assert q.dequeue() == 4
# q.queue(6)
# assert q.dequeue() == 5
# assert q.dequeue() == 6
# assert q.dequeue() == None
"""
3) Implement a Binary Min Heap using an array
(A Min Heap always pops off the smallest element)
Difficulty: 9
"""
class Heap: #minHeap
def __init__(self, size=1):
self.size = size
self.ar = [-1 for i in range(size)]
def createFromArray(self, ar):
pass
# Efficiency: log(n)
def push(self, val):
pass
# Efficiency: log(n)
def pop(self):
pass