Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ SearchSubTree()

int System.Data.RBTree< K >.SearchSubTree ( int root_id,
K key )
inlineprivate

Definition at line 1028 of file RBTree.cs.

1029 {
1030 if (root_id != 0 && _accessMethod != TreeAccessMethod.KEY_SEARCH_AND_INDEX)
1031 {
1032 throw ExceptionBuilder.InternalRBTreeError(RBTreeError.UnsupportedAccessMethodInNonNillRootSubtree);
1033 }
1034 int num = ((root_id == 0) ? root : root_id);
1035 while (num != 0)
1036 {
1037 int num2 = ((root_id == 0) ? CompareNode(key, Key(num)) : CompareSateliteTreeNode(key, Key(num)));
1038 if (num2 == 0)
1039 {
1040 break;
1041 }
1042 num = ((num2 >= 0) ? Right(num) : Left(num));
1043 }
1044 return num;
1045 }
K Key(int nodeId)
Definition RBTree.cs:1407
readonly TreeAccessMethod _accessMethod
Definition RBTree.cs:217
int CompareSateliteTreeNode(K record1, K record2)
int CompareNode(K record1, K record2)

References System.Data.RBTree< K >._accessMethod, System.Data.RBTree< K >.CompareNode(), System.Data.RBTree< K >.CompareSateliteTreeNode(), System.Data.ExceptionBuilder.InternalRBTreeError(), System.Data.RBTree< K >.Key(), System.key, System.Collections.Generic.Left, System.Data.Right, and System.Data.RBTree< K >.root.

Referenced by System.Data.RBTree< K >.GetIndexByNode(), and System.Data.RBTree< K >.GetNodeByKey().