私はこのコードを持っています、それは現在の形で働いています、それは課題ですが、私たちの誰も本当にこの仕組みを理解していないように感じています。私は本当に答えが必要です。それは私を悩ますのと同じことです。 コード:クラスノードとクラスキュー、 "ポインタ"はどのように機能しますか?
class Node:
def __init__(self,data):
self.cargo=data
self.pekareinnan=None
class Queue:
def __init__(self):
self.svans=None
self.huvud=None
def put(self,x):
item=Node(x)
if self.svans==None:
self.svans=item
self.huvud=item
else:
self.svans.pekareinnan=item #What does this line really do?
self.svans=item
def isempty(self):
return self.huvud==None
def get(self):
if self.huvud==None:
return None
else:
do=self.huvud.cargo
self.huvud=self.huvud.pekareinnan ##How does this line work?
return do
それはハードのフォロー、pekareinnan = pointerbefore(スウェーデン)、svans =尾、huvud =頭だ場合。私はプログラミングよりもずっと多くのことを知っている人たちに私に比べて尋ねようとしました。そのうちの1人は、svansがsentinelnodeだと言っていました。私はそれに1,3,5というリストを持っているとしよう。私はそこに9を入れたいと思っています.pakareinnanは何ですか、svansは何ですか?何か助けてくれてありがとう、
ありがとうございました。あなたが最初に頭と尾の両方として機能するノードであることを理解していれば、別の番号を追加するとポインタを更新して新しい尾を指すようにする必要があります。私はこれまでに聞いたことがありますが、ノードが値を含むオブジェクトとポインタの両方が正しいと言えるでしょうか?最後の質問、なぜあなたは代わりに==を使用したいですか? –
正しいです、ノードは値と次のノードへのポインタの両方を含んでいます。 'is'を使うことが主に好まれる慣例です。 'None'はその型の唯一のオブジェクトであるシングルトンなので安全です。 – chepner
時間があれば、私はbinarysearchツリーにremove-methodを追加しようとしているので、これを尋ねました。私はすでにコードを完成させていますが、コードを見ていないときに助けてくれるのは分かりませんが、self.left = childとself.left.right = grandchildと言うと、それはどういう仕組みですか?私はそれを理解していれば左だけのポインタです、self.left.right、それは左に1歩、次に右に1歩ですか?助けてくれてありがとう! –