-
Notifications
You must be signed in to change notification settings - Fork 0
/
二叉树学习.py
61 lines (44 loc) · 1.18 KB
/
二叉树学习.py
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
import queue
class Node():
def __init__(self,value,leftNode, rightNode):
self.leftNode = leftNode
self.rightNode = rightNode
self.value = value
last_left_node = Node(1,None, None)
last_right_node = Node(2, None, None)
second_left_node = Node(3, last_left_node, last_right_node)
second_right_node = Node(4, None, None)
top_node = Node(10, second_left_node, second_right_node)
# 前序遍历的实现
def print_method(node):
if node == None:
return
print(node.value)
print_method(node.leftNode)
print_method(node.rightNode)
# print_method(top_node)
# 层序遍历 TODO
# stack = []
#
# def ceng_print(node):
# if node == None:
# return
# if len(stack) == 0:
# print(node.value)
# stack.append(node)
# ceng_print(node)
# else:
# for index in range(0, len(stack)):
# 二叉查找
def find_node(node, value):
if node == None:
return False
if node.value == value:
return True
elif node.value > value:
return find_node(node.leftNode, value)
else:
return find_node(node.rightNode, value)
result = find_node(top_node, 1)
if result:
print("find")