我试图编写一个树的方法,它将通过节点的名称将一个新节点插入到当前树中。我成功地将一个节点添加到节点的第一级,这指的是根链接,但是当我尝试添加一个与根链接不关联的新节点时,没有任何结果。我明白,插入()方法具有只适用于根链接的逻辑,但我如何修复它,以便其他链接添加新节点。抱歉,如果不完全清楚,英语不是我的母语。
public class Tree {
public static void main(String[] args) {
Node root = new Node("Root");
Node level1 = new Node("Level-1");
Node level2 = new Node("Level-2");
Node level1a = new Node("Level-1a");
Node level1b = new Node("Level-1b");
Node level3 = new Node("Level-3");
Node some = new Node("insert child");
root.add(level1);
root.add(level1a);
root.add(level1b);
level1.add(level2);
level2.add(level3);
System.out.println("The initial state:\n");
root.print(0);
root.insert(some, "Level-1");
level2.insert(some, "Level-2");
System.out.println("\nAfter inserting a branch:\n");
root.print(0);
}
static class Node {
private final String name;
private final List<Node> children = new ArrayList<>();
public Node(String name) {
this.name = name;
}
public void add(Node child) {
children.add(child);
}
public void print(int lv) {
for (int i = 0; i < lv; i++) System.out.print(" ");
System.out.println(this.name);
for (Node a : this.children) {
a.print(lv + 5);
}
}
public void insert(Node newNode, String branchParentName) {
for (Node element : children) {
if (branchParentName.equals(element.name)) {
element.add(newNode);
}
}
}
}
}
这是我的算法
我已经完成了第1点和第2点,如何从我的算法中得出第3点和第4点?我不知道如何更深入地了解节点中的级别。
像这样的怎么样:
public boolean insert(Node newNode, String branchParentName) {
if (branchParentName.equals(name)) {
add(newNode);
return true;
}
for (Node element : children) {
if (element.insert(newNode, branchParentName)) {
return true;
}
}
return false;
}
我有一个很长的switch语句代码(大约8个案例),它决定了在浏览器中使用什么搜索来查找元素。有没有关于如何重构这段代码的建议? WebElement CurrentObject=null;切换(SearchBy){case“className”:尝试{CurrentObject=new WebDriverWait(driver,ConstantValues.LONGWAIT)。直到(Expect
总的来说,问题是做什么?
在Scapy中添加新的协议(或者是更加的高级:新的协议层)是非常容易的。所有的魔法都在字段中,如果你需要的字段已经有了,你就不必对这个协议太伤脑筋,几分钟就能搞定了。 简单的例子 每一个协议层都是Packet类的子类。协议层背后所有逻辑的操作都是被Packet类和继承的类所处理的。一个简单的协议层是被一系列的字段构成,他们关联在一起组成了协议层,解析时拆分成一个一个的字符串。这些字段都包含在名为f
问题内容: 最近三年,我一直在用PHP进行Web应用程序开发。我现在快要尝试Java。我最近一次使用该语言是在8年前,而且大部分是学术性的。 我对PHP的对象模型(版本5)相当熟悉,并且我几乎完全是在OO中进行编码的。我现在想传达这种经验并将其用于Java开发。 我来自哪里: linux作为桌面和服务器 Vim / gVim +插件作为编辑器 MySQL的数据库 apache httpd 一堆PH
问题内容: 我从未见过 在任何地方实际使用过HTML标记。使用它有陷阱吗,这意味着我应该避免使用它? 我从来没有注意到它在现代生产站点(或任何站点)上使用过的事实,使我对此感到不安,尽管它似乎具有简化我站点上链接的有用应用程序。 编辑 在使用基本标签几周后,我确实发现使用基本标签会引起一些重大麻烦,这使它比最初出现的效果要差得多。从本质上讲,变化和基本标签下是_非常_有它们的默认行为不兼容,并可以
问题内容: 我正在做一个基于滚动2D地图/平铺的游戏。每个图块(存储为tile [21] [11]-每个地图总共231个图块)最多可以包含21个值(存储为int [3] [7])。在全屏模式下,我一次可以看到8张地图。 平均而言,每张地图的绘制时间约为0.03秒(可通过System.nanoTime找到)。问题在于,一旦在屏幕上显示多于一张地图,Swing事件轮询就会明显变慢。 有什么解决办法吗?