Java计算字符串向量_用字符串向量解析Java树结构中的节点

本文探讨如何在Java中为具有重复名称的树形数据结构节点创建字符串向量,表示节点路径。问题涉及遍历树结构,将每个节点的路径(包括父节点)存储到向量中。虽然提供了用于打印节点的代码,但作者在构建完整的路径方面遇到困难,特别是处理非二叉树的情况。寻求解决方案。
摘要由CSDN通过智能技术生成

我有一个这样的数据结构

private String name;

private ArrayList children;

private String parent="";

public Node(String name) {

setName(name);

children = new ArrayList();

}

在程序的其他地方,我有一个名为“根”的节点,它包含一个完整的树数据结构。

从概念上看是这样的

root

/ \

/ \

node1 node2

/ \

/ \

node2 node3

/

/

node3

如您所见,节点可以具有相同的名称。这是故意的。我想为每个节点创建一个包含自己名字的字符串,加上它的沿袭并将它们存储在一个向量中。

所以左手边的节点3是

"root|node1|node2|node3"

RHS上的节点3是

"root|node2|node3"

节点1将是

"root|node1"

等。

我有一种方法可以遍历节点结构来打印每个节点,但是我发现很难设置每个父节点,例如,我无法找到一种方法来完成它。任何帮助都是美妙的,因为我迄今所做的一切都失败了。一个重要的注意事项是树不一定是二叉树,我只是用它作为一个例子。

这是我用来打印树的每个节点的代码。希望它会很容易调整。

public void print() {

LinkedList open = new LinkedList();

LinkedList closed = new LinkedList();

open.add(this);

while(!open.isEmpty()) {

Node currentNode = open.removeFirst();

System.out.println(currentNode.getName());

ArrayList children = currentNode.getChildren();

closed.add(currentNode);

for(int i = 0; i < children.size(); i++) {

Node current = children.get(i);

open.addLast(current);

}

}

}

谢谢大家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值