I am writing a learning program in python, and I'm not getting the behavior I'm expecting. I am attempting to create a really basic tree with a class called node. Please don't punish me for having a crappy tree design, I'm just trying to learn the language.
Anyway, I'm expecting output like:
LEVEL1 0
LEVEL1 1
But, I'm getting
LEVEL1 0
LEVEL1 1
LEVEL1 0 ... LEVEL2 0
On the line where I do leaves[0].addLeaf
I really thought I would be calling a method of of one of the children leaves, but it appears that I am instead calling from the TOP leaf. Please help me understand.
Don't be tricked by the name traversePrint
. Nothing is being traversed, not yet anyway :(
#!/usr/bin/python
class node:
"""Something that can act like like leaves of a tree"""
leaves = []
def __init__(self, data=""):
self.data = data
def addLeaf(self, newNode="new"):
self.leaves.append(node(newNode))
def printLeafs(self):
for leaf in self.leaves:
print leaf.data
def getLeafs(self):
return self.leaves
def traversePrint(self):
for leaf in self.leaves:
print leaf.data
#for leaf in self.leaves:
# leaf.traversePrint()
top = node("TOP")
top.addLeaf("LEVEL1 0")
top.addLeaf("LEVEL1 1")
leaves = top.getLeafs()
leaves[0].addLeaf("LEVEL1 0 ... LEVEL2 0")
top.traversePrint()