Node rightnode; //右子ノード #endregion Fields #region Constructors //コンストラクタ(引数:ノードの値) public Node(string expression) { this.expression = expression; leftnode = null; rightnode = null; }
Node node; //親ノード #endregion Fields #region Constructors //コンストラクタ(引数:grid) public Function(Grid grid, string firstexpression) { expression = firstexpression; this.grid = grid; node = new Node(expression); }
//2分木に分解 public bool Parse() { int posoprerator = GetOperatorPosition(expression); if (posoprerator == NOTEXISTS) { leftnode = null; rightnode = null; return true; } else if (posoprerator == BRACKETERROR) return false; leftnode = new Node(RemoveBracket(this.expression.Substring(0, posoprerator))); leftnode.Parse(); rightnode = new Node(RemoveBracket(this.expression.Substring(posoprerator + 1))); rightnode.Parse(); this.expression = this.expression.Substring(posoprerator, 1); return (leftnode.expression != "" && rightnode.expression != ""); }