From 13599f85c5d0d089bd7ab2c9166eced795156c79 Mon Sep 17 00:00:00 2001 From: Yacine Zahidi Date: Mon, 27 Dec 2021 11:07:07 +0100 Subject: [PATCH 1/6] Updated dfs_stack Made it more pythonic and compact. Usage of temp variable wasn't necessary nor was the loop through children or the appending of the root node to the stack. --- .../code/python/tree_traversal.py | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/contents/tree_traversal/code/python/tree_traversal.py b/contents/tree_traversal/code/python/tree_traversal.py index 735837bdd..fe6c98956 100644 --- a/contents/tree_traversal/code/python/tree_traversal.py +++ b/contents/tree_traversal/code/python/tree_traversal.py @@ -46,18 +46,12 @@ def dfs_recursive_inorder_btree(node): def dfs_stack(node): - stack = [] - stack.append(node) - - temp = None - - while len(stack) > 0: - print(stack[-1].data, end=' ') - temp = stack.pop() - - for child in temp.children: - stack.append(child) - + stack = [node] + while stack: + node = stack.pop() + if node.children: + stack += node.children + print(node.data, end=' ') def bfs_queue(node): queue = [] From 36f89ca9faea6acadd46a92790fc0041b6099750 Mon Sep 17 00:00:00 2001 From: Yacine Zahidi Date: Mon, 27 Dec 2021 12:13:06 +0100 Subject: [PATCH 2/6] Update bfs_queue and dfs_stack More compact and pythonic --- .../code/python/tree_traversal.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/contents/tree_traversal/code/python/tree_traversal.py b/contents/tree_traversal/code/python/tree_traversal.py index fe6c98956..1556c5b23 100644 --- a/contents/tree_traversal/code/python/tree_traversal.py +++ b/contents/tree_traversal/code/python/tree_traversal.py @@ -54,17 +54,12 @@ def dfs_stack(node): print(node.data, end=' ') def bfs_queue(node): - queue = [] - queue.append(node) - - temp = None - - while len(queue) > 0: - print(queue[0].data, end=' ') - temp = queue.pop(0) - - for child in temp.children: - queue.append(child) + queue = [node] + while queue: + node = queue.pop(0) + if node.children: + queue += node.children + print(node.data) def main(): From 2cbd97f2cce60a432c4c6015715519fc9b16f2ae Mon Sep 17 00:00:00 2001 From: Yacine Zahidi Date: Mon, 27 Dec 2021 15:11:37 +0100 Subject: [PATCH 3/6] Update tree_traversal.md Fixed line numbers to match new dfs_stack and bfs_queue implementation --- contents/tree_traversal/tree_traversal.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contents/tree_traversal/tree_traversal.md b/contents/tree_traversal/tree_traversal.md index 566aca469..b1aee4f80 100644 --- a/contents/tree_traversal/tree_traversal.md +++ b/contents/tree_traversal/tree_traversal.md @@ -231,7 +231,7 @@ In code, it looks like this: {% sample lang="js" %} [import:53-60, lang:"javascript"](code/javascript/tree.js) {% sample lang="py" %} -[import:48-59, lang:"python"](code/python/tree_traversal.py) +[import:48-54, lang:"python"](code/python/tree_traversal.py) {% sample lang="scratch" %}

@@ -284,7 +284,7 @@ And this is exactly what Breadth-First Search (BFS) does! On top of that, it can {% sample lang="js" %} [import:62-69, lang:"javascript"](code/javascript/tree.js) {% sample lang="py" %} -[import:62-72, lang:"python"](code/python/tree_traversal.py) +[import:56-62, lang:"python"](code/python/tree_traversal.py) {% sample lang="scratch" %}

From a7336c4f22b746f01ce780580fcf0dcef430871f Mon Sep 17 00:00:00 2001 From: Yacine Zahidi Date: Mon, 27 Dec 2021 15:16:35 +0100 Subject: [PATCH 4/6] Update tree_traversal.py Replaced iadd with extend in dfs_stack and bfs_queue --- contents/tree_traversal/code/python/tree_traversal.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contents/tree_traversal/code/python/tree_traversal.py b/contents/tree_traversal/code/python/tree_traversal.py index 1556c5b23..8a3d9b2fe 100644 --- a/contents/tree_traversal/code/python/tree_traversal.py +++ b/contents/tree_traversal/code/python/tree_traversal.py @@ -50,7 +50,7 @@ def dfs_stack(node): while stack: node = stack.pop() if node.children: - stack += node.children + stack.extend(node.children) print(node.data, end=' ') def bfs_queue(node): @@ -58,7 +58,7 @@ def bfs_queue(node): while queue: node = queue.pop(0) if node.children: - queue += node.children + queue.extend(node.children) print(node.data) From ebffcec7d25c8af4a1a37ce1d0242d32349ee8f9 Mon Sep 17 00:00:00 2001 From: Yacine Zahidi Date: Mon, 27 Dec 2021 15:23:46 +0100 Subject: [PATCH 5/6] Update tree_traversal.py --- contents/tree_traversal/code/python/tree_traversal.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/contents/tree_traversal/code/python/tree_traversal.py b/contents/tree_traversal/code/python/tree_traversal.py index 8a3d9b2fe..1c15eae23 100644 --- a/contents/tree_traversal/code/python/tree_traversal.py +++ b/contents/tree_traversal/code/python/tree_traversal.py @@ -49,16 +49,14 @@ def dfs_stack(node): stack = [node] while stack: node = stack.pop() - if node.children: - stack.extend(node.children) + stack.extend(node.children) print(node.data, end=' ') def bfs_queue(node): queue = [node] while queue: node = queue.pop(0) - if node.children: - queue.extend(node.children) + queue.extend(node.children) print(node.data) From 09c0eab0569d9d736939293ae6610ea0fa22108f Mon Sep 17 00:00:00 2001 From: Yacine Zahidi Date: Mon, 27 Dec 2021 15:26:27 +0100 Subject: [PATCH 6/6] Update tree_traversal.md --- contents/tree_traversal/tree_traversal.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contents/tree_traversal/tree_traversal.md b/contents/tree_traversal/tree_traversal.md index b1aee4f80..2defe9da8 100644 --- a/contents/tree_traversal/tree_traversal.md +++ b/contents/tree_traversal/tree_traversal.md @@ -231,7 +231,7 @@ In code, it looks like this: {% sample lang="js" %} [import:53-60, lang:"javascript"](code/javascript/tree.js) {% sample lang="py" %} -[import:48-54, lang:"python"](code/python/tree_traversal.py) +[import:48-53, lang:"python"](code/python/tree_traversal.py) {% sample lang="scratch" %}

@@ -284,7 +284,7 @@ And this is exactly what Breadth-First Search (BFS) does! On top of that, it can {% sample lang="js" %} [import:62-69, lang:"javascript"](code/javascript/tree.js) {% sample lang="py" %} -[import:56-62, lang:"python"](code/python/tree_traversal.py) +[import:55-60, lang:"python"](code/python/tree_traversal.py) {% sample lang="scratch" %}