Exemplo n.º 1
0
        private void ToArrayAux(AleRBTreeNode <TKey, TData>[] A, AleRBTreeNode <TKey, TData> node, int Lo, int Hi)
        {
            int i;

            if (node.Left == null)
            {
                i = Lo;
            }
            else if (node.Right == null)
            {
                i = Hi;
            }
            else
            {
                i = Lo + node.Left.Count;
            }

            A[i] = node;
            if (node.Left != null)
            {
                ToArrayAux(A, node.Left, Lo, i - 1);
            }
            if (node.Right != null)
            {
                ToArrayAux(A, node.Right, i + 1, Hi);
            }
        }
Exemplo n.º 2
0
 public AleRBTreeNode(TKey NewKey, TData NewData)
 {
     _IsRed  = false;
     _Count  = 1;
     _Data   = NewData;
     _Key    = NewKey;
     _Left   = null;
     _Right  = null;
     _Parent = null;
 }
Exemplo n.º 3
0
 public AleRBTreeNode <TKey, TData>[] ToArray()
 {
     AleRBTreeNode <TKey, TData>[] res = new AleRBTreeNode <TKey, TData> [_Count];
     ToArrayAux(res, this, 0, _Count - 1);
     return(res);
 }