用python实现树这种数据结构,可用于实现二叉树或N叉树。
一、定义数据结构
class Node():
# 初始化一个节点
def __init__(self,val = None):
self.val = val # 节点值
self.l_child = [] # 子节点列表
# 添加子节点
def add_child(self,node):
self.l_child.append(node)
二、初始化数据
示例数据如图所示

root = Node('A')
B = Node('B')
root.add_child(B)
root.add_child(Node('C'))
D = Node('D')
root.add_child(D)
B.add_child(Node('E'))
B.add_child(Node('F'))
B.add_child(Node('G'))
D.add_child(Node('H'))
D.add_child(Node('I'))
三、遍历方法
二叉树:
前序遍历
后序遍历
层次遍历
中序遍历
N叉树:
前序遍历 ABEFGCDHI
后序遍历 EFGBCHIDA
层次遍历
其中,每种遍历方式都有两种实现方式(递归和非递归)
3.1前序遍历
res = ''
def pre(tn):
global res
if not tn:
return
res += tn.val
for i in tn.l_child:
pre(i)
return(res)
pre(root)
print(res)
3.2后序遍历
res = ''
def post(tn):
global res
if not tn:
return
for i in tn.l_child:
post(i)
res += tn.val
return(res)
post(root)
print(res)

2588

被折叠的 条评论
为什么被折叠?



