@Override public final int computeHeight() { return computeHeight(m_root); }
private final int computeHeight(int node) { assert (0 <= node && node < m_nodeCapacity); if (m_child1[node] == NULL_NODE) { return 0; } int height1 = computeHeight(m_child1[node]); int height2 = computeHeight(m_child2[node]); return 1 + MathUtils.max(height1, height2); }
@Override public void drawTree(DebugDraw argDraw) { if (m_root == NULL_NODE) { return; } int height = computeHeight(); drawTree(argDraw, m_root, 0, height); }
/** * Validate this tree. For testing. */ public void validate() { validateStructure(m_root); validateMetrics(m_root); int freeCount = 0; int freeNode = m_freeList; while (freeNode != NULL_NODE) { assert (0 <= freeNode && freeNode < m_nodeCapacity); freeNode = m_parent[freeNode]; ++freeCount; } assert (getHeight() == computeHeight()); assert (m_nodeCount + freeCount == m_nodeCapacity); }
@Override public final int computeHeight() { return computeHeight(m_root); }
private final int computeHeight(int node) { assert (0 <= node && node < m_nodeCapacity); if (m_child1[node] == NULL_NODE) { return 0; } int height1 = computeHeight(m_child1[node]); int height2 = computeHeight(m_child2[node]); return 1 + MathUtils.max(height1, height2); }
@Override public void drawTree(DebugDraw argDraw) { if (m_root == NULL_NODE) { return; } int height = computeHeight(); drawTree(argDraw, m_root, 0, height); }
/** * Validate this tree. For testing. */ public void validate() { validateStructure(m_root); validateMetrics(m_root); int freeCount = 0; int freeNode = m_freeList; while (freeNode != NULL_NODE) { assert (0 <= freeNode && freeNode < m_nodeCapacity); freeNode = m_parent[freeNode]; ++freeCount; } assert (getHeight() == computeHeight()); assert (m_nodeCount + freeCount == m_nodeCapacity); }
@Override public final int computeHeight() { return computeHeight(m_root); }
@Override public final int computeHeight() { return computeHeight(m_root); }
private final int computeHeight(int node) { assert (0 <= node && node < m_nodeCapacity); if (m_child1[node] == NULL_NODE) { return 0; } int height1 = computeHeight(m_child1[node]); int height2 = computeHeight(m_child2[node]); return 1 + JBoxUtils.max(height1, height2); }
private final int computeHeight(int node) { assert (0 <= node && node < m_nodeCapacity); if (m_child1[node] == NULL_NODE) { return 0; } int height1 = computeHeight(m_child1[node]); int height2 = computeHeight(m_child2[node]); return 1 + MathUtils.max(height1, height2); }
@Override public void drawTree(DebugDraw argDraw) { if (m_root == NULL_NODE) { return; } int height = computeHeight(); drawTree(argDraw, m_root, 0, height); }
@Override public void drawTree(DebugDraw argDraw) { if (m_root == NULL_NODE) { return; } int height = computeHeight(); drawTree(argDraw, m_root, 0, height); }
/** * Validate this tree. For testing. */ public void validate() { validateStructure(m_root); validateMetrics(m_root); int freeCount = 0; int freeNode = m_freeList; while (freeNode != NULL_NODE) { assert (0 <= freeNode && freeNode < m_nodeCapacity); freeNode = m_parent[freeNode]; ++freeCount; } assert (getHeight() == computeHeight()); assert (m_nodeCount + freeCount == m_nodeCapacity); }
/** * Validate this tree. For testing. */ public void validate() { validateStructure(m_root); validateMetrics(m_root); int freeCount = 0; int freeNode = m_freeList; while (freeNode != NULL_NODE) { assert (0 <= freeNode && freeNode < m_nodeCapacity); freeNode = m_parent[freeNode]; ++freeCount; } assert (getHeight() == computeHeight()); assert (m_nodeCount + freeCount == m_nodeCapacity); }