示例#1
0
        protected static void InsertNodeAfter(FlattenerNode pos, FlattenerNode newNode)
        {
            newNode = newNode.GetListRoot();
            if (pos._right == null)
            {
                pos._right      = newNode;
                newNode._Parent = pos;
            }
            else
            {
                pos = pos._right;
                while (pos._left != null)
                {
                    pos = pos._left;
                }
                pos._left       = newNode;
                newNode._Parent = pos;
            }

            RebalanceUntilRoot(pos);
        }
示例#2
0
 private static void DumpTree(FlattenerNode node)
 {
     node.GetListRoot().DumpTree();
 }
示例#3
0
 public Flattener(FlattenerNode root)
 {
     root  = root.GetListRoot();
     _root = root;
     root._treeFlattener = this;
 }