usr bin python -coding utf-8- напишите функци осуществляющую операцию

 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
62
63
64
65
66
67
68
#!/usr/bin/python
#-*-coding:utf-8-*-
#напишите функци., осуществляющую операцию обрезки ветви дерева, начиная с указанного элемента вниз
class Node:
"""docstring for ClassName"""
# def __init__(self, value, children = None):
# self.value = value
# self.children = children
def __init__(self, data = None, lchild = None, rchild = None):
self.data = data
self.lchild = lchild
self.rchild = rchild
def __str__(self):
return 'Node ['+str(self.value)+']'
class Tree:
def __init__(self):
#просто объявление 10 элементов в конструкторе
self.nodes = []
self.root = None
self.nodes.append(self.root)
#функция для добавления элементов в дерево
def my_insert(self, root_node, data, position):
temp = Node(0)
temp.data = data
if root_node == None:
return temp
else:
if position == 0:
root_node.lchild = temp
return temp
else:
root_node.rchild = temp
return temp
def preorder(self,node):
if node!=None:
print (" %d " % node.data)
self.preorder(node.lchild)
self.preorder(node.rchild)
def remove_elem(self,pos):
self.nodes[pos].lchild = None
self.nodes[pos].rchild = None
#создание дерева
t = Tree()
t.root = t.my_insert(t.root,1,0)
t.nodes.append(t.my_insert(t.root, 2, 0))
t.nodes.append(t.my_insert(t.root, 3, 1))
t.nodes.append(t.my_insert(t.nodes[1], 4, 0))
t.nodes.append(t.my_insert(t.nodes[2], 5, 1))
t.nodes.append(t.my_insert(t.nodes[2], 6, 0))
#обход дерева в глубину
t.preorder(t.root);
print "-"
t.remove_elem(2)
t.preorder(t.root)