コード例 #1
0
 internal virtual void CopyFrom(RBTreeNodeBase <T, P> z)
 {
     if (z.mLeft != null)
     {
         z.mLeft.mParent = this;
     }
     this.mLeft = z.mLeft;
     if (z.mRight != null)
     {
         z.mRight.mParent = this;
     }
     this.mRight = z.mRight;
     if (z.mParent != null)
     {
         if (z.mParent.mLeft == z)
         {
             z.mParent.SetLeft(this);
         }
         else
         {
             z.mParent.SetRight(this);
         }
     }
     this.mColor = z.mColor;
     this.SetParent(z.mParent);
 }
コード例 #2
0
 internal override void SetParent(RBTreeNodeBase <T, RBOrderedNodeParam> value)
 {
     this.mParent = value;
     if (this.mParent == null)
     {
         return;
     }
     this.mParent.OnUpdateCount();
 }
コード例 #3
0
 internal override void CopyFrom(RBTreeNodeBase <T, RBOrderedNodeParam> z)
 {
     this.mParam.mRank  = z.mParam.mRank;
     this.mParam.mCount = z.mParam.mCount;
     base.CopyFrom(z);
 }
コード例 #4
0
 internal override void SetRight(RBTreeNodeBase <T, RBOrderedNodeParam> value)
 {
     this.mRight = value;
     this.OnUpdateCount();
 }
コード例 #5
0
 internal virtual void SetRight(RBTreeNodeBase <T, P> value)
 {
     this.mRight = value;
 }
コード例 #6
0
 internal virtual void SetLeft(RBTreeNodeBase <T, P> value)
 {
     this.mLeft = value;
 }
コード例 #7
0
 internal virtual void SetParent(RBTreeNodeBase <T, P> value)
 {
     this.mParent = value;
 }