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

◆ ComputeNodeByIndex() [1/2]

int System.Data.RBTree< K >.ComputeNodeByIndex ( int index,
out int satelliteRootId )
inlineprivate

Definition at line 1172 of file RBTree.cs.

1173 {
1174 index++;
1175 satelliteRootId = 0;
1176 int num = root;
1177 int num2 = -1;
1178 while (num != 0 && ((num2 = SubTreeSize(Left(num)) + 1) != index || Next(num) != 0))
1179 {
1180 if (index < num2)
1181 {
1182 num = Left(num);
1183 continue;
1184 }
1185 if (Next(num) != 0 && index >= num2 && index <= num2 + SubTreeSize(Next(num)) - 1)
1186 {
1187 satelliteRootId = num;
1188 index = index - num2 + 1;
1189 return ComputeNodeByIndex(Next(num), index);
1190 }
1191 index = ((Next(num) != 0) ? (index - (num2 + SubTreeSize(Next(num)) - 1)) : (index - num2));
1192 num = Right(num);
1193 }
1194 return num;
1195 }
int ComputeNodeByIndex(int index, out int satelliteRootId)
Definition RBTree.cs:1172
int SubTreeSize(int nodeId)
Definition RBTree.cs:1402
int Next(int nodeId)
Definition RBTree.cs:1397

References System.Data.RBTree< K >.ComputeNodeByIndex(), System.index, System.Collections.Generic.Left, System.Data.RBTree< K >.Next(), System.Data.Right, System.Data.RBTree< K >.root, and System.Data.RBTree< K >.SubTreeSize().

Referenced by System.Data.RBTree< K >.ComputeNodeByIndex(), and System.Data.RBTree< K >.GetNodeByIndex().