【问题标题】:Binary Tree traversal maze二叉树遍历迷宫
【发布时间】:2015-08-24 18:41:52
【问题描述】:

我正在创建一个二叉树迷宫。这棵树有 8 片叶子,目标是遍历树并在一片或多片叶子上找到“食物”。在每个节点,参与者可以选择左节点或右节点进入下一个节点。或者,它可以遍历两者,但要付出一定的代价(可能是 1 个时间步,而选择 on 或其他的可能是 2 个时间步)。如果它到达一片没有食物的叶子,它必须回溯并重新做出决定。这最终将变成一种进化算法,其中策略被存储并经过多代进化。存储经过的路径的最有效方法是什么(如果找不到食物,参与者可以回溯)?

【问题讨论】:

  • 定义高效。您是指 CPU 周期(如果是,您计划进行哪些操作)还是内存?
  • 对不起,我的意思是代码行数高效。真的我只需要某种方式来记住遍历
  • 您可以在每个节点上留下面包屑,也可以保留访问过的节点列表。仍然不确定您对效率的定义,但是这些方法中的任何一种都可以完成工作。最大的区别在于面包屑,一次只能有一条路径。如果需要,您可以使用列表跟踪多个路径。

标签: java binary-tree binary-search-tree evolutionary-algorithm


【解决方案1】:

有很多方法可以解决这个问题。想到的一件事是在每个节点上都有一个布尔标志,如果节点被访问,则返回并将节点的索引或键值存储在这个数组中。

例子:

1. Start tree traversal
 2. User picks direction(right/left)
 3. flag which node was visited
 4. store node's index or key in an array

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-01
    • 2022-11-11
    • 1970-01-01
    • 2021-11-20
    • 2017-03-04
    • 2021-03-08
    • 2020-01-15
    相关资源
    最近更新 更多