Codice:
package unicam.aaftx.operators;
import java.util.Vector;
/*Classe Node*/
public class Node
{
Node left;
Node right;
Object data;
public Node CreateNode(Node dx, Node sx, Object newData)
{
right = dx;
left = sx;
data = newData;
return this;
}
public void CreateRoot(int i, Vector<Object> complexAssist)
{
Node root = CreateNode (null, null, complexAssist.get(i));
CreateTree(i, complexAssist, root);
}
public void CreateTree(int i, Vector<Object> complexAssist, Node root)
{
ComplexSelectionCondition csc;
this.right = new Node();
this.right.CreateNode(null, null, complexAssist.get(i + 1));
if (i - 2 < 0)
{
this.left = new Node();
this.left.CreateNode(null, null, complexAssist.get(i - 1));
csc = new ComplexSelectionCondition(root);
}
else
{
i = i - 2;
this.left = new Node();
this.left.CreateNode(null, null, complexAssist.get(i));
this.left.CreateTree(i, complexAssist, root);
}
}
}
EDIT:
OK così funziona!!!
Ora il problema è considerare le parentesi... Un'espressione del tipo: a AND (b OR c) AND (d AND e) ci manda assolutamente in crisi...