Skip to content

Commit 0bbee07

Browse files
Updated Queue to return values, not nodes, and added dfs to tree methods.
1 parent dac0f0c commit 0bbee07

File tree

2 files changed

+32
-9
lines changed

2 files changed

+32
-9
lines changed

Queue.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,4 @@ def dequeue(self):
5656
self.first = temp.next
5757
temp.next = None
5858
self.length -= 1
59-
return temp
59+
return temp.value

Tree.py

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
Insert: LL O(1), BST O(log n) cuz of traversal
2727
LL is very quick with appending, no other DS beats it
2828
'''
29+
import Queue
2930

3031

3132
class Node:
@@ -129,16 +130,15 @@ def delete_node(self, value):
129130

130131
def bfs(self):
131132
current_node = self.root
132-
queue = []
133+
queue = Queue.Queue(current_node)
133134
results = []
134-
queue.append(current_node)
135-
while queue:
136-
current_node = queue.pop(0)
135+
while queue.length:
136+
current_node = queue.dequeue()
137137
results.append(current_node.value)
138138
if current_node.left:
139-
queue.append(current_node.left)
139+
queue.enqueue(current_node.left)
140140
if current_node.right:
141-
queue.append(current_node.right)
141+
queue.enqueue(current_node.right)
142142
return results
143143

144144
def dfs_preorder(self):
@@ -155,7 +155,30 @@ def traverse(current_node):
155155
return results
156156

157157
def dfs_postorder(self):
158-
pass
158+
results = []
159+
160+
def traverse(current_node):
161+
if current_node.left:
162+
traverse(current_node.left)
163+
if current_node.right:
164+
traverse(current_node.right)
165+
results.append(current_node.value)
166+
167+
traverse(self.root)
168+
return results
169+
170+
def dfs_inorder(self):
171+
results = []
172+
173+
def traverse(current_node):
174+
if current_node.left:
175+
traverse(current_node.left)
176+
results.append(current_node.value)
177+
if current_node.right:
178+
traverse(current_node.right)
179+
180+
traverse(self.root)
181+
return results
159182

160183

161184
bst = BinarySearchTree()
@@ -166,4 +189,4 @@ def dfs_postorder(self):
166189
bst.r_insert(27)
167190
bst.r_insert(52)
168191
bst.r_insert(82)
169-
print(bst.dfs_preorder())
192+
print(bst.dfs_inorder())

0 commit comments

Comments
 (0)