Пример #1
0
        void InsertNode(BDDNode node) // Добавление в таблицу
        {
            int leftId  = (node.GetLow() == null) ? 0 : node.GetLow().GetId();
            int rightId = (node.GetHigh() == null) ? 0 : node.GetHigh().GetId();
            int varId   = node.GetVarId();

            if (!nodeTable.ContainsKey(Tuple.Create(varId, leftId, rightId)))
            {
                nodeTable.Add(Tuple.Create(varId, leftId, rightId), node);
            }
        }
Пример #2
0
 private BDDNode Contraction(int v, BDDNode x, bool pos) // сужение функции
 {
     if (v != x.GetVarId())
     {
         return(x);
     }
     return((pos) ? x.GetHigh() : x.GetLow());
 }