2016-04-20 8 views
0

Wie würde ich den Standard-Parent-Knoten in diesem Binärbaum in Python als Root festlegen?Wie würde ich den Standardelternknoten in diesem Binärbaum in Python als Root festlegen?

Ich habe folgendes, aber es gibt den Fehler unten.

class Tree: 
    def __init__(self): 
    self.root=None 

    def insertNode(self,parentNode=self.root,node=None): 
    if self.root is None: 
     self.root=node 

Dies ist der Fehler seines Geben:

def insertNode(self,parentNode=self.root,node=None): 
NameError: name 'self' is not defined 

Vielen Dank im Voraus

+0

Duplizieren von http://StackOverflow.com/Questions/5555449/using-self-xxxx-as-default-Parameter-Python –

Antwort

0

Die self.root nicht als Argument ausgewertet werden kann. Ein einfacher Weg, es zu tun ist:

class Tree: 
    def __init__(self): 
    self.root=None 

    def insertNode(self,parentNode=None,node=None): 
    if parentNode is None: 
     parentNode=self.root 
    if self.root is None: 
     self.root=node 

Aber wie auch immer, das geht sehr schlecht für einen Binärbaum. Machen Sie einfach eine Zeichnung auf Papier Ihres Baumes, um zu sehen, wie man Methoden definiert, oder vielleicht sollten Sie in einem einfacheren Fall über Klasse/Objekt in Python trainieren.

+0

Vielen Dank Herr Vince! –

Verwandte Themen