Skip to content

Commit b19bed9

Browse files
committed
Learning Tree
1 parent b6bad9b commit b19bed9

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

basics/RealTimeProject/tree.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
tree = [
2+
"root", [
3+
"child1", [
4+
["child1.1", []],
5+
["child1.2", []]
6+
]
7+
],
8+
["child2", []]
9+
]
10+
11+
def print_tree(tree, level=0):
12+
for node in tree:
13+
if type(node) == list:
14+
print_tree(node, level + 1)
15+
else:
16+
print(" " * level, node)
17+
18+
def add_child(value, parent):
19+
parent.append([value, []])
20+
21+
def add_sibling(value, parent):
22+
parent[-1].append([value, []])
23+
24+
def edit_node(value, parent):
25+
parent[-1][0] = value
26+
27+
def delete_node(parent):
28+
parent.pop()
29+
30+
print_tree(tree)
31+
print("===============")
32+
add_child("child1.3", tree[1][1])
33+
add_sibling("child2.1", tree[2])
34+
add_sibling("child2.2", tree[2])
35+
36+
add_child("child3", tree)
37+
add_sibling("child3.1", tree[3])
38+
edit_node("root1", tree)
39+
40+
print_tree(tree)
41+
print("===============")
42+
delete_node(tree[1])
43+
print_tree(tree)

0 commit comments

Comments
 (0)