目前我用以下方式表示二叉树:
[None,2,[None,3,None]]
上面的树以 2 为根。None 表示该分支为空。
我宁愿在列表中实现它。 有没有更好的方法来做到这一点(无需求助于创建类)?
请您参考如下方法:
如果你想表示一个完整的二叉树(即所有节点都有两个子节点,叶子除外),那么你可以只使用一个平面列表来表示树。
你可以像这样轻松地确定一个节点的父亲和两个 child :
def leftChild(lst,i):
try:
return lst[i*2]
except IndexError:
return None
def rightChild(lst,i):
try:
return lst[i*2+1]
except IndexError:
return None
def father(lst,i):
try:
return lst[i/2]
except IndexError:
return None
