summaryrefslogtreecommitdiff
path: root/src/TCollection/TCollection_AVLBaseNode.cxx
blob: 1da6be568d19b600ffd73916c010a9493d3c4963 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <TCollection_AVLBaseNode.ixx>

Standard_Integer TCollection_AVLBaseNode::Height(const TCollection_AVLBaseNodePtr& ANode)
     // Length of the longest child
{
  if (!ANode) return 0;
  else return (1 + Max(Height(ANode->myLeft),Height(ANode->myRight)));
}


Standard_Integer TCollection_AVLBaseNode::RecursiveExtent(const TCollection_AVLBaseNodePtr &  ANode) 
     // Number of different items in the current tree
{
  if ( ! ANode ) return 0;
  else return  (1 +  RecursiveExtent(ANode->myLeft)   
		+  RecursiveExtent(ANode->myRight)  );
}

Standard_Integer TCollection_AVLBaseNode::RecursiveTotalExtent(const TCollection_AVLBaseNodePtr&  ANode) 
{
  // Number of different items in the current tree according to
  // the multiplicity
  if ( ! ANode  ) return 0;
  else return ( RecursiveTotalExtent(ANode->myLeft) + RecursiveTotalExtent(ANode->myRight) + ANode->myCount);
}