Red de conocimiento informático - Aprendizaje de programación - Una pregunta de programación simple sobre árboles binarios en Java

Una pregunta de programación simple sobre árboles binarios en Java

Defina una clase de nodo:

Nodo de clase pública {

valor int privado;

Nodo privado leftNode;

Nodo privado rightNode;

Nodo público getRightNode() {

return rightNode;

}

public void setRightNode(Nodo rightNode ) {

this.rightNode = rightNode;

}

public int getValue() {

valor de retorno;

}

public void setValue(int value) {

this.value = value

}

Nodo público getLeftNode; () {

return leftNode;

}

public void setLeftNode(Nodo leftNode) {

this.leftNode = leftNode; /p>

}

}

Inicializar el árbol de nodos:

public void initNodeTree()

{

p>

int nodeNumber;

HashMaplt; String, Integergt; map = new HashMaplt; String, Integergt ();

p>

Lector de escáner = nuevo escáner (System.in);

número de nodo = lector.nextInt(); i = 0; i lt; número de nodo; i) {

int valor = lector.nextInt();

Cadena = lector.siguiente(); > map.put(cadena, valor) ;

}

if (map.containsKey("#")) {

int valor = map.get ("#");

nodeTree.setValue(valor);

setChildNode(mapa, valor, nodeTree);

}

preTraversal(nodeTree);

}

private void setChildNode(HashMaplt; String, Integergt; map, int nodeValue, Node parentNode) {

int value = 0;

<

p> if (map.containsKey("L" nodeValue)) {

valor = map.get("L" nodeValue);

Nodo leftNode = new Node();

leftNode.setValue(valor);

parentNode.setLeftNode(leftNode);

setChildNode(mapa, valor, leftNode); }

if (map.containsKey("R" nodeValue)) {

value = map.get("R" nodeValue

Nodo rightNode =); new Node();

rightNode.setValue(valor);

parentNode.setRightNode(rightNode);

setChildNode(mapa, valor, rightNode);

}

}

Preordenar atraviesa el árbol de nodos:

public void preTraversal(Node nodeTree) {

if (nodeTree != null) {

System.out.print(nodeTree.getValue() "\t");

preTraversal(nodeTree.getLeftNode()); p>

preTraversal(nodeTree.getRightNode());

}

}