Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 二叉树遍历迷宫_Java_Binary Tree_Binary Search Tree_Evolutionary Algorithm - Fatal编程技术网

Java 二叉树遍历迷宫

Java 二叉树遍历迷宫,java,binary-tree,binary-search-tree,evolutionary-algorithm,Java,Binary Tree,Binary Search Tree,Evolutionary Algorithm,我正在创建一个二叉树迷宫。这棵树有8片叶子,目标是穿过这棵树,在一片或多片叶子上找到“食物”。在每个节点上,参与者可以选择左侧或右侧节点转到下一个节点。或者,它可以同时遍历这两种情况,但要付出一定的代价(可能是1个时间步,而选择on或其他方式则是2个时间步)。如果它到达了一片没有食物的叶子,它必须回溯并重新做出决定。这最终将转变为一种进化算法,在这种算法中,策略将经过多代存储和进化。存储经过的路径最有效的方法是什么(如果没有找到食物,参与者可能会回溯)?有很多方法可以实现这一点。想到的一件事是在

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

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

例如:

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

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

例如:

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

定义有效。你指的是CPU周期(如果是的话,你计划做什么操作)还是内存?对不起,我指的是代码行的效率。实际上,我只需要一些方法来记住遍历过程。你可以在每个节点上留下面包屑,或者你可以保存一个访问节点的列表。仍然不确定你对效率的定义,但这两种方法都可以完成任务。最大的区别是面包屑,你一次只能有一条路。使用列表,如果需要,您可以跟踪多个路径。定义高效。你指的是CPU周期(如果是的话,你计划做什么操作)还是内存?对不起,我指的是代码行的效率。实际上,我只需要一些方法来记住遍历过程。你可以在每个节点上留下面包屑,或者你可以保存一个访问节点的列表。仍然不确定你对效率的定义,但这两种方法都可以完成任务。最大的区别是面包屑,你一次只能有一条路。使用列表,您可以跟踪多个路径(如果需要)。