前提・実現したいこと
classに作った要素を全て選択する方法を知りたい
ここに質問の内容を詳しく書いてください。
二分探索を用いた時にたとえば2,5,3,4,1と順番に値を持つノードを二分木に入れてそれらが何番目に小さい要素なのかをカウントする関数を再起的に入れたいと思っております。このときに
for i in ●●
のようにclassのノードを全選択するコードの書き方を知りたいのですが何かしら方法がありましたらご教授ください
recountのような操作を組み込みたいのですが、どのようにすればいいのかわからなかったです。
Python
1class Bintree7(Bintree): 2 def __init__(self,key=None,data=None,count=None): 3 super().__init__(key=None,data=None) 4 self.count=count 5 def recount(self,count,m): 6 if self.count>=m: 7 self.count += 1 8 if self.left != None: 9 self.left.recount(count,m) 10 if self.right != None: 11 self.right.recount(count,m) 12 return 13 def insert(self,key,data): 14 if self.key == None: 15 self.key = key 16 self.data = data 17 self.count = 1 18 return self 19 if key < self.key: 20 if self.left == None: 21 m=self.count 22 self.left = self.__class__(key,data) 23 self.left.count=m 24 return True 25 else: 26 return self.left.insert(key,data) 27 elif key > self.key: 28 if self.right == None: 29 m=self.count 30 31 self.right = self.__class__(key,data) # selfと同じクラスのオブジェクトを生成する 32 self.right = m+1 33 return True 34 else: 35 return self.right.insert(key,data) 36 else: # key == self.key: 37 return False
大学か何かの課題か知りませんが、「classのノードを全選択するコードの書き方を知りたい」「recountのような操作を組み込みたい」ってことですけど、そもそも質問文記載のBintree7が、recount関数の組み込み以前に、きちんと動いていることは貴方の方で検証済みなんでしょうか?
その基本となる部分で動くコードを示してから「classのノードを全選択するコードの書き方を知りたい」っていう質問をしないと、二分探索木の基本的な部分の修正・作成まで丸投げしてるってことになるんじゃないですかね。
回答2件
あなたの回答
tips
プレビュー