Esempio n. 1
0
        Node rightnode; //右子ノード

        #endregion Fields

        #region Constructors

        //コンストラクタ(引数:ノードの値)
        public Node(string expression)
        {
            this.expression = expression;
            leftnode = null;
            rightnode = null;
        }
Esempio n. 2
0
        Node node; //親ノード

        #endregion Fields

        #region Constructors

        //コンストラクタ(引数:grid)
        public Function(Grid grid, string firstexpression)
        {
            expression = firstexpression;
            this.grid = grid;
            node = new Node(expression);
        }
Esempio n. 3
0
        //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 != "");
        }