public void Calculate(Component visitable) { if (!(visitable is SingleComponent)) { CompositeComponent compositeNode = visitable as CompositeComponent; if (compositeNode is Negation) { Calculate(compositeNode.LeftNode); compositeNode.Evaluate(this); } else if (compositeNode != null) { Calculate(compositeNode.LeftNode); Calculate(compositeNode.RightNode); compositeNode.Evaluate(this); } } else { if (visitable is Variable) { BinaryTree.PropositionalVariables.Variables.Add(visitable as Variable); } } }
public void Calculate(Component visitable) { if (visitable is SingleComponent) { return; } CompositeComponent compositeNode = visitable as CompositeComponent; compositeNode?.Evaluate(this); }
public void Calculate(Component visitable) { if (!(visitable is SingleComponent)) { CompositeComponent compositeNode = visitable as CompositeComponent; if (compositeNode is Negation) { Calculate(compositeNode.LeftNode); compositeNode.Evaluate(this); } else if (compositeNode != null) { Calculate(compositeNode.RightNode); Calculate(compositeNode.LeftNode); compositeNode.Evaluate(this); } } }