私はPythonでいくつかのデータ構造とアルゴリズムをブラッシングしていますので、私はUnordered Linkedリストを実装しています。同じファイルの中で、まずNodeクラスの後にListクラスを書きました。私のsearch_item()メソッドの "現在の"変数が、ノードオブジェクトであるか、少なくともNodeクラスのメソッドと属性にアクセスできるように見えるかどうかは分かりません。私がadd_node()メソッドをコメントアウトすると、 "現在の"ノードのメソッドへのアクセス権がなくなったことに気付きました。今は明示的に継承も合成も使用していないので、コードが以下に書かれている方法でget_next()をどのように呼び出すのが難しいか見ています。私は現在のように宣言する必要があると思うだろう:current = Node(self.head)しかし、ちょうどcurrent = self.headは動作するようですか? あなたの助けに感謝します。いくつかの構成の側面を理解していません
class Node:
def __init__(self, data):
self.data = data
self.next = None
def get_data(self):
return self.data
def set_data(self, d):
self.data = d
def get_next(self):
return self .next
def set_next(self, n):
self.next = n
class UnorderedList:
def __init__(self):
self.head = None
def add_node(self, item):
tmp = Node(item)
tmp.set_next(self.head)
self.head = tmp
def search_item(self, item):
current = self.head
# current = Node(self.head)
found = False
while current != None and not found:
if current.get_data() == item:
found = True
else:
current = current.get_next()
return found
例が継承されていません。だからあなたは何の相続面を理解していないのですか?あなたの質問を変更できますか? – olivecoder
@olivecoder、正しい、私は私の元の記事で述べたように、私は明示的に継承や合成を使用していませんが、何らかの理由でUnorderedList(ノード)を宣言し、current = Node(self.head) Nodeのメソッドへの現在のアクセスを提供しています。理由を理解したいと思います。これが私の質問をクリアすることを願っています。 – tjbadr
TBadrなし。明示的または暗黙的に(?)継承を使用していません。質問は継承とは関係がありません。あなたはそのコードに従うことができません。私はコンセプトは継承ではなく、全く問題ではないと言うことができます。だから私はあなたの質問のために編集を提案しようとしましたが、私はそれのタイトルを想像することができませんでした、確かにそれは最新ではありません。 – olivecoder