From 10a404c7aeb7087e25ff3ee74fe33ff804ba0af7 Mon Sep 17 00:00:00 2001 From: Donne Martin Date: Sun, 14 Aug 2016 08:26:57 -0400 Subject: [PATCH] Move tree bfs to a class --- graphs_trees/tree_bfs/bfs_challenge.ipynb | 20 +++++++------ graphs_trees/tree_bfs/bfs_solution.ipynb | 36 +++++++++++++---------- graphs_trees/tree_bfs/test_bfs.py | 12 ++++---- 3 files changed, 37 insertions(+), 31 deletions(-) diff --git a/graphs_trees/tree_bfs/bfs_challenge.ipynb b/graphs_trees/tree_bfs/bfs_challenge.ipynb index b907e22..2a3e062 100644 --- a/graphs_trees/tree_bfs/bfs_challenge.ipynb +++ b/graphs_trees/tree_bfs/bfs_challenge.ipynb @@ -87,9 +87,11 @@ }, "outputs": [], "source": [ - "def bfs(self, visit_func):\n", - " # TODO: Implement me\n", - " pass" + "class BstBfs(Bst):\n", + "\n", + " def bfs(self, visit_func):\n", + " # TODO: Implement me\n", + " pass" ] }, { @@ -128,12 +130,12 @@ " self.results = Results()\n", "\n", " def test_bfs(self):\n", - " node = Node(5)\n", - " insert(node, 2)\n", - " insert(node, 8)\n", - " insert(node, 1)\n", - " insert(node, 3)\n", - " bfs(node, self.results.add_result)\n", + " bst = BstBfs(Node(5))\n", + " bst.insert(2)\n", + " bst.insert(8)\n", + " bst.insert(1)\n", + " bst.insert(3)\n", + " bst.bfs(self.results.add_result)\n", " assert_equal(str(self.results), '[5, 2, 8, 1, 3]')\n", "\n", " print('Success: test_bfs')\n", diff --git a/graphs_trees/tree_bfs/bfs_solution.ipynb b/graphs_trees/tree_bfs/bfs_solution.ipynb index 2cd0125..c4f09d3 100644 --- a/graphs_trees/tree_bfs/bfs_solution.ipynb +++ b/graphs_trees/tree_bfs/bfs_solution.ipynb @@ -97,16 +97,20 @@ "from collections import deque\n", "\n", "\n", - "def bfs(root, visit_func):\n", - " queue = deque()\n", - " queue.append(root)\n", - " while queue:\n", - " node = queue.popleft()\n", - " visit_func(node)\n", - " if node.left is not None:\n", - " queue.append(node.left)\n", - " if node.right is not None:\n", - " queue.append(node.right)" + "class BstBfs(Bst):\n", + "\n", + " def bfs(self, visit_func):\n", + " if self.root is None:\n", + " raise Exception('root is None')\n", + " queue = deque()\n", + " queue.append(self.root)\n", + " while queue:\n", + " node = queue.popleft()\n", + " visit_func(node)\n", + " if node.left is not None:\n", + " queue.append(node.left)\n", + " if node.right is not None:\n", + " queue.append(node.right)" ] }, { @@ -153,12 +157,12 @@ " self.results = Results()\n", "\n", " def test_bfs(self):\n", - " node = Node(5)\n", - " insert(node, 2)\n", - " insert(node, 8)\n", - " insert(node, 1)\n", - " insert(node, 3)\n", - " bfs(node, self.results.add_result)\n", + " bst = BstBfs(Node(5))\n", + " bst.insert(2)\n", + " bst.insert(8)\n", + " bst.insert(1)\n", + " bst.insert(3)\n", + " bst.bfs(self.results.add_result)\n", " assert_equal(str(self.results), '[5, 2, 8, 1, 3]')\n", "\n", " print('Success: test_bfs')\n", diff --git a/graphs_trees/tree_bfs/test_bfs.py b/graphs_trees/tree_bfs/test_bfs.py index 33ddd10..ed0ba6d 100644 --- a/graphs_trees/tree_bfs/test_bfs.py +++ b/graphs_trees/tree_bfs/test_bfs.py @@ -7,12 +7,12 @@ class TestBfs(object): self.results = Results() def test_bfs(self): - node = Node(5) - insert(node, 2) - insert(node, 8) - insert(node, 1) - insert(node, 3) - bfs(node, self.results.add_result) + bst = BstBfs(Node(5)) + bst.insert(2) + bst.insert(8) + bst.insert(1) + bst.insert(3) + bst.bfs(self.results.add_result) assert_equal(str(self.results), '[5, 2, 8, 1, 3]') print('Success: test_bfs')