Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f21f2aa

Browse files
author
wb.xubilin
committed
二叉树 后序遍历
1 parent c0d0a3c commit f21f2aa

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

‎new_issue/data_sturct/binary_tree/inorderTraverse.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def inorder_traverse(node,op_func):
1010
inorder_traverse(node.right_child,op_func)
1111

1212

13-
def inorder_traverse_nonResursion(node,op_func):
13+
def inorder_traverse_nonRecursion(node,op_func):
1414
stack = []
1515
root = node
1616
while len(stack) != 0 or root != None:
@@ -27,4 +27,4 @@ def inorder_traverse_nonResursion(node,op_func):
2727
root_node = init_tree_from_list(test_list)
2828
def visit(node):
2929
print node.value
30-
inorder_traverse_nonResursion(root_node,visit)
30+
inorder_traverse_nonRecursion(root_node,visit)
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
from initTree import init_tree_from_list
2+
def postorder_traverse(node,op_func):
3+
if node.left_child != None:
4+
postorder_traverse(node.left_child,op_func)
5+
6+
if node.right_child != None:
7+
postorder_traverse(node.right_child,op_func)
8+
9+
op_func(node)
10+
11+
def postorder_traverse_nonRecursion(node,op_func):
12+
stack = [node]
13+
root = node
14+
last_node = None
15+
16+
while len(stack) != 0 or root != None:
17+
while root != None:
18+
stack.append(root)
19+
root = root.left_child
20+
op_node = stack[-1]
21+
if op_node.right_child == None or op_node.right_child == last_node:
22+
op_node = stack.pop()
23+
op_func(op_node)
24+
last_node = op_node
25+
else:
26+
root = op_node.right_child
27+
28+
if __name__ == "__main__":
29+
test_list = range(10)
30+
root_node = init_tree_from_list(test_list)
31+
def visit(node):
32+
print node.value
33+
postorder_traverse_nonRecursion(root_node,visit)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /