Advertisement
Heruberuto

Untitled

May 1st, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.42 KB | None | 0 0
  1.  
  2.         public Node successor(Node q) {
  3.             depthSum = treeNodes = 0;
  4.             Node rightSuccessor = getSuccessorLeft(q.right, 0);
  5.             double rightDepthSum = depthSum;
  6.             depthSum = 0;
  7.             int rightTreeNodes = treeNodes;
  8.             treeNodes = 0;
  9.  
  10.             Node leftSuccessor = getSuccessorRight(q.leftChild, 0);
  11.             double leftMiddle = depthSum / treeNodes;
  12.             double rightMiddle = rightDepthSum / rightTreeNodes;
  13.             //System.out.println("<"+leftMiddle+","+rightMiddle+">");
  14.             if (leftMiddle < rightMiddle) {
  15.                 R++;
  16.                 return rightSuccessor;
  17.             }
  18.             L++;
  19.             return leftSuccessor;
  20.         }
  21.  
  22.         public Node getSuccessorLeft(Node node, int depth) {
  23.             if (node == null) return null;
  24.             Node result = getSuccessorLeft(node.leftChild, depth + 1);
  25.             treeNodes++;
  26.             depthSum += depth;
  27.             getSuccessorLeft(node.right, depth + 1);
  28.             return result == null ? node : result;
  29.         }
  30.  
  31.         public Node getSuccessorRight(Node node, int depth) {
  32.             if (node == null) return null;
  33.             getSuccessorRight(node.leftChild, depth + 1);
  34.             treeNodes++;
  35.             depthSum += depth;
  36.             Node result = getSuccessorRight(node.right, depth + 1);
  37.             return result == null ? node : result;
  38.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement