Tag: 遍历

深度优先搜索二维arrays

我正在尝试通过创建一个通过迷宫(2d数组)导航我的食人魔的程序来学习DFS。这类似于每日编程挑战,但我只用1×1食人魔做这件事。 我的迷宫: static int[][] maze = { {2,1,0,0,0,0,0,0,0,0}, {0,0,1,0,0,0,0,0,0,0}, {1,0,0,0,0,1,0,1,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,1,1,0,0,0,0,0,0}, {0,0,1,0,0,0,0,1,0,1}, {1,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,1,0,0,0}, {0,0,0,0,0,1,0,0,0,3}}; 其中2是我的英雄(0,0),3是我的目标(9,9),1是障碍物,0是可穿越空间。 由于我是新手,我怀疑它是否需要,但生病包括整个程序,以便于复制和故障排除。 import java.awt.Point; import java.util.ArrayList; public class OgrePath { static int[][] maze = { {2,1,0,0,0,0,0,0,0,0}, {0,0,1,0,0,0,0,0,0,0}, {1,0,0,0,0,1,0,1,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,1,1,0,0,0,0,0,0}, {0,0,1,0,0,0,0,1,0,1}, {1,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,1,0,0,0}, {0,0,0,0,0,1,0,0,0,3}}; public static boolean[][] visited = new boolean[maze.length][maze[0].length]; static ArrayList neighbors = new ArrayList(); […]

如何使用Jsoup遍历HTML树?

我觉得这个问题已被提出,但我没有找到任何答案。 从Jsoup中的Document元素,我如何遍历HTML内容中的所有元素? 我正在阅读文档,我正在考虑使用childNodes()方法,但它只接受下面一个leval的节点(我理解)。 我想我可以使用这种方法进行一些递归,但我想知道是否有更合适/本地的方法来做到这一点。

从inorder和preorder遍历重构二叉树

我编写了以下代码,用于从inorder和preorder遍历构造树。 它看起来对我来说是正确的,但它产生的最终树没有与它构建的输出相同的顺序输出。 任何人都可以帮我找到这个function的缺陷吗? public btree makeTree(int[] preorder, int[] inorder, int left,int right) { if(left > right) return null; if(preIndex >= preorder.length) return null; btree tree = new btree(preorder[preIndex]); preIndex++; int i=0; for(i=left; i<= right;i++) { if(inorder[i]==tree.value) break; } tree.left = makeTree(preorder, inorder,left, i-1); tree.right = makeTree(preorder, inorder,i+1, right ); return tree; } 注意:preIndex是在函数外声明的静态。

使用Java进行NAT遍历

我想连接到计算机,每个计算机都在NAT路由器后面。 我读到STUN只适用于NAT路由器后面的一台计算机。 真的吗? 如果是这样,我该如何解决双NAT问题? 谢谢,托马斯

循环方式的java数组遍历

我有一个数组,其中包含1 2 3 4 5个值。 array a = [ 1 , 2, 3, 4, 5] 现在我想以循环方式遍历它。 我喜欢打印2 3 4 5 1或3 4 5 1 2或5 1 2 3 4等等。 对此有何算法 ? 编辑:我想以循环方式打印所有组合。 我不想在初始阶段说出起点。

如何检查数组中的所有值是否具有特定值?

在Java中,给定一个值数组(比如整数),有没有办法有效地检查它们是否都具有某个值? 例如,使用整数数组,例如: int[] numbers = {2, 2, 2, 2, 2, 2, 2}; 并且只有当所有这些都是2时才需要执行操作,是否有比这样做更有效的方法: if (numbers[1] == 2 && numbers[2] == 2 && numbers[3] == 2 && …) 我知道有很多方法可以在C ++中实现这一点但是Java呢?

这个inorder遍历算法如何工作?

我没有太多的递归经验,所以我很难确定这个算法是如何工作的: public static void inorder(Node n) { if (n != null) { inorder(n.getLeft()); System.out.print(n.data + ” “); inorder(n.getRight()); } } 我知道它访问了树中每个节点的左右子节点,但我无法理解为什么它确实有效。

如何在Java中按下/键入TAB键?

private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) { //cant capture my TAB? System.out.print(evt.getKeyChar()); } 在没有使用焦点监听技术的情况下,java gui中捕获tab键的最简单方法是什么?

我如何迭代二叉树?

现在我有 private static void iterateall(BinaryTree foo) { if(foo!= null){ System.out.println(foo.node); iterateall(foo.left); iterateall(foo.right); } } 你能把它改成Iteration而不是递归吗?

遍历Java中二叉树的所有节点

假设我有一个简单的二叉树节点类,如下所示: public class BinaryTreeNode { public String identifier = “”; public BinaryTreeNode parent = null; public BinaryTreeNode left = null; public BinaryTreeNode right = null; public BinaryTreeNode(BinaryTreeNode parent, String identifier) { this.parent = parent; //passing null makes this the root node this.identifier = identifier; } public boolean IsRoot() { return parent == null; } } […]