我正在为一个正在进行的软件工程课程的项目工作.目标是设计一个程序,该程序将使用遗传编程生成适合所提供的训练数据的数学表达式.
我刚刚开始研究这个项目,我正试图围绕如何创建一个允许用户定义的树高度的二叉树,并保持每个节点分离,以便在我到达时使交叉和变异更简单实施这些过程.
这是我到目前为止创建的节点类.请原谅我确信我明显缺乏经验.
public class Node
{
Node parent;
Node leftchild;
Node rightchild;
public void setParent(Node p)
{
parent = p;
}
public void setLeftChild(Node lc)
{
lc.setParent(this);
leftchild = lc;
}
public void setRightChild(Node rc)
{
rc.setParent(this);
rightchild = rc;
}
}
public class OperatorNode extends Node
{
char operator;
public OperatorNode()
{
double probability = Math.random();
if (probability <= .25)
{
operator = '+';
}
else if (probability > .25 && probability <= .50)
{
operator = '-'; …Run Code Online (Sandbox Code Playgroud)