示例#1
0
文件: Bspt.cs 项目: ch-hristov/NCDK
 public bool AddTuple(T tuple)
 {
     if (tuple.GetDimValue(dim) < splitValue)
     {
         if (eleLE.AddTuple(tuple))
         {
             return(true);
         }
         eleLE = new Node(parent, (dim + 1) % dimMax, dimMax, (Leaf)eleLE);
         return(eleLE.AddTuple(tuple));
     }
     if (tuple.GetDimValue(dim) > splitValue)
     {
         if (eleGE.AddTuple(tuple))
         {
             return(true);
         }
         eleGE = new Node(parent, (dim + 1) % dimMax, dimMax, (Leaf)eleGE);
         return(eleGE.AddTuple(tuple));
     }
     if (eleLE.IsLeafWithSpace())
     {
         eleLE.AddTuple(tuple);
     }
     else if (eleGE.IsLeafWithSpace())
     {
         eleGE.AddTuple(tuple);
     }
     else if (eleLE is Node)
     {
         eleLE.AddTuple(tuple);
     }
     else if (eleGE is Node)
     {
         eleGE.AddTuple(tuple);
     }
     else
     {
         eleLE = new Node(parent, (dim + 1) % dimMax, dimMax, (Leaf)eleLE);
         return(eleLE.AddTuple(tuple));
     }
     return(true);
 }
示例#2
0
文件: Bspt.cs 项目: ch-hristov/NCDK
 public void AddTuple(T tuple)
 {
     if (!eleRoot.AddTuple(tuple))
     {
         eleRoot = new Node(this, 0, dimMax, (Leaf)eleRoot);
         if (!eleRoot.AddTuple(tuple))
         {
             throw new Exception("Bspt.AddTuple() failed");
         }
     }
 }