python的list实现的多叉树,建树以及遍历
这个树有什么优点呢?
1.子树的个数可以是0到无限大(意味着你可以任意构造一些不规则的树)
2.极低的内存消耗
// 源代码
def make_list_tree(): #调用此函数建树
tree=[]
zhan=[tree]
j=sub=sub_=t=t_=0
for tr in zhan:
j+=1
sub_+=1
t-=1
x=input('请输入第%s层第%s个的节点值:'%(sub,sub_))
y=int(input('请输入%s节点的子节点个数:'%x))
tr.append(x)
t_+=y
if t==0:
sub+=1
t=t_
sub_=t_=0
if y==0:
continue
while y>0:
tr.append([])
y-=1
for child in tr[1:]:
if type(child)==list:
zhan.append(child)
while 0<j:
zhan.pop(0)
j-=1
return tree
//--------------------漂亮的分割线----------------------
def list_tree_print(tree): #此函数用于层次遍历
zhan=[tree]
while len(zhan):
j=0
for y in zhan:
j+=1
print(y[0])
for x in y[1:]:
if type(x)==list:
zhan.append(x)
while 0<j:
zhan.pop(0)
j-=1