public void Insert(IPolynomNode inode, int value)
 {
     DoublePolynomNode node = inode as DoublePolynomNode;
     if (node.Power != 0)
     {
         if (node.Next.Power == node.Power - 1)
             throw new Exception("Нет свободной степени для вставки");
         else
         {
             DoublePolynomNode insnode = new DoublePolynomNode(value, node.Power - 1);
             insnode.Next = node.Next;
             node.Next.Prev = insnode;
             node.Next = insnode;
             insnode.Prev = node;
         }
     }
 }
 public void Insert(IPolynomNode inode, int value)
 {
     PolynomNode node = inode as PolynomNode;
     if (node.Power != 0)
     {
         if (node.ChildNode == null)
         {
             node.ChildNode = new PolynomNode(value, node.Power - 1);
         }
         else
         {
             if (node.ChildNode.Power == node.Power - 1)
                 throw new Exception("Нет свободной степени для вставки");
             else
             {
                 PolynomNode ins = new PolynomNode(value, node.Power - 1);
                 ins.ChildNode = node.ChildNode;
                 node.ChildNode = ins;
             }
         }
     }
 }