跟踪BFS中的节点-Python,Maze

跟踪BFS中的节点-Python,Maze,python,numpy,nodes,breadth-first-search,Python,Numpy,Nodes,Breadth First Search,我在Python3.7.3中用2D numpy数组表示的迷宫上实现BFS。此代码生成迷宫: for row in range(dim): # Add an empty array that will hold each cell # in this row grid.append([]) for column in range(dim): grid[row].append(np.random.binomial

我在Python3.7.3中用2D numpy数组表示的迷宫上实现BFS。此代码生成迷宫:

for row in range(dim):
        # Add an empty array that will hold each cell
        # in this row
        grid.append([])
        for column in range(dim):
            grid[row].append(np.random.binomial(1, 0.2, 1))  # Append a cell
            if (row == column == dim - 1):
                grid[row][column] = 0
        grid[0][0] = 0
我希望避免使用node类,因为我对它的成功有限。我想知道如何在BFS搜索中表示/存储从迷宫上的(0,0)位置到(维度-1,维度-1)位置的父子关系。此外,考虑到图形/迷宫/网格的性质,我需要避免让孩子在同一位置但父母不同。我想返回起始位置和结束位置之间的最短节点列表


谢谢你的帮助

节点类将是最好和最健壮的选项。另一种方法是将节点存储为元组,如
(x,y,parent_index)
,其中
parent_index
链接回节点的父节点。这需要将节点存储在固定顺序列表中,以便父索引正常工作。例如,
node\u parent=nodes\u list[node[2]]
采用这种方法,问题是单个节点将其所有邻居作为父节点。我已经试过了@Dominic DIf如果您正在进行BFS,则在特定位置找到的第一个节点将具有最小距离,因此如果您试图找到最短路径,则只需存储为特定位置找到的第一个父节点。