java数据结构创建树_在java中创建树数据结构?

我试图在

java中创建一个树数据结构,其中每个父节点只能有三个子节点,但在节点至少有一个子节点但少于3个子节点的情况下,我一直坚持在树上添加一个节点.我不确定是否应该使用迭代器来迭代我当前节点的节点列表.我试着使用一个变量,每次调用add()方法时都会递增.

这是我的代码:

节点类:

public class Node {

int keyValue;

int nodeLabel;

ArrayList nodeChildren;

private static int count;

Node(int _keyValue)

{

this.nodeLabel = count;

this.keyValue = _keyValue;

this.count++;

nodeChildren = new ArrayList();

}

public String toString()

{

return "Node " + nodeLabel + " has the key " + keyValue;

}

}

Tree类:add()方法

Node rootNode;

int incrementor = 0;

public void addNode(int nodeKey)

{

Node newNode = new Node(nodeKey);

if (rootNode == null)

{

rootNode = newNode;

}

else if (rootNode.nodeChildren.isEmpty())

{

rootNode.nodeChildren.add(newNode);

}

else if (!rootNode.nodeChildren.isEmpty())

{

Node currentNode = rootNode;

Node parentNode;

incrementor = 0;

while (currentNode.nodeChildren.size() < 3)

{

//currentNode.nodeChildren.add(newNode);

if (currentNode.nodeChildren.size() == 3)

{

parentNode = currentNode.nodeChildren.get(incrementor);

currentNode = parentNode;

currentNode.nodeChildren.get(incrementor).nodeChildren.add(newNode);

}

else

{

parentNode = currentNode;

currentNode = currentNode.nodeChildren.iterator().next();

currentNode.nodeChildren.add(newNode);

}

incrementor = incrementor + 1;

}

System.out.println(rootNode.nodeChildren.size());

}

}

当第三个节点添加到树时,我得到一个IndexOutOfBounds异常

你可能感兴趣的:(java数据结构创建树)