我是 python 编程的新手,最近我在编程递归方面遇到了一些问题。考虑我有一个图:a)顶点列表 b)和邻接列表(作为二维列表),我正在尝试获得列表将给我这些顶点的后序遍历顺序(Post_Order_List_of_Node),与此相反,它将告诉任何节点的顺序(Order_of_Node)和所有节点的父亲列表。我编写了以下代码:
我的“订单”变量是全局的,但根据输出,它不会增加。
我不知道为什么,但变量“订单”没有得到更新。
def Post_Order(node,order,father):
Order_of_Node = [No_of_Nodes]*No_of_Nodes #Initialization
Post_Order_List_of_Node = [No_of_Nodes]*No_of_Nodes #Initialization
def recursive(node,order,father):
if len(Spanning_Tree[node]) == 0:
Order_of_Node[node] = order
Post_Order_List_of_Node[order] = node
order = order + 1
Father_List[node] = father
del(Spanning_Tree[father][0])
return
else:
while(len(Spanning_Tree[node])!=0):
recurse(Spanning_Tree[node][0],order,node)
recurse(node,order,father)
return Post_Order_List_of_Node,Order_of_Node
Father_List = [0]*No_of_Nodes
root = 0
father = 0
order = 1
Order = []
Order = Post_Order(root,order,father)