Beispiel #1
0
        // pre kazdeho predchodcu n updatne pocet listov,
        // ktore su nad nim
        public void updateNumLeafsUp(KDNode n) 
        {
            n.setNumLeafs(n.getLeft().getNumLeafs() + n.getRight().getNumLeafs());
            Console.WriteLine("update to root " + n.getSplit() + " numLeafs = " + n.getNumLeafs());
            Console.WriteLine("update to root right " + n.getRight().getNumLeafs() + " left " + n.getLeft().getNumLeafs());
            if (n.Equals(root)) 
            {
                return;
            }

            updateNumLeafsUp(n.getParent());

        }
Beispiel #2
0
 // pre kazdy vrchol podstromu n updatne pocet listov,
 // ktore su pod nim
 public int updateNumLeafsDown(KDNode n)
 {
     if (n.isLeaf) {
         n.setNumLeafs(1);
         Console.WriteLine("update " + n.getPoint() + " numLeafs = 1");
         return 1;
     }
     int r = updateNumLeafsDown(n.getRight());
     int l = updateNumLeafsDown(n.getLeft());
     n.setNumLeafs(r + l);
     Console.WriteLine("update " + n.getSplit() + " numLeafs = " + n.getNumLeafs());
     return r + l;
 }