質問編集履歴

1

例の追加

2021/06/13 00:58

投稿

lemon-tea
lemon-tea

スコア2

test CHANGED
File without changes
test CHANGED
@@ -9,3 +9,83 @@
9
9
  for i in ●●
10
10
 
11
11
  のようにclassのノードを全選択するコードの書き方を知りたいのですが何かしら方法がありましたらご教授ください
12
+
13
+ recountのような操作を組み込みたいのですが、どのようにすればいいのかわからなかったです。
14
+
15
+ ```Python
16
+
17
+ class Bintree7(Bintree):
18
+
19
+ def __init__(self,key=None,data=None,count=None):
20
+
21
+ super().__init__(key=None,data=None)
22
+
23
+ self.count=count
24
+
25
+ def recount(self,count,m):
26
+
27
+ if self.count>=m:
28
+
29
+ self.count += 1
30
+
31
+ if self.left != None:
32
+
33
+ self.left.recount(count,m)
34
+
35
+ if self.right != None:
36
+
37
+ self.right.recount(count,m)
38
+
39
+ return
40
+
41
+ def insert(self,key,data):
42
+
43
+ if self.key == None:
44
+
45
+ self.key = key
46
+
47
+ self.data = data
48
+
49
+ self.count = 1
50
+
51
+ return self
52
+
53
+ if key < self.key:
54
+
55
+ if self.left == None:
56
+
57
+ m=self.count
58
+
59
+ self.left = self.__class__(key,data)
60
+
61
+ self.left.count=m
62
+
63
+ return True
64
+
65
+ else:
66
+
67
+ return self.left.insert(key,data)
68
+
69
+ elif key > self.key:
70
+
71
+ if self.right == None:
72
+
73
+ m=self.count
74
+
75
+
76
+
77
+ self.right = self.__class__(key,data) # selfと同じクラスのオブジェクトを生成する
78
+
79
+ self.right = m+1
80
+
81
+ return True
82
+
83
+ else:
84
+
85
+ return self.right.insert(key,data)
86
+
87
+ else: # key == self.key:
88
+
89
+ return False
90
+
91
+ ```