Esempio n. 1
0
                static void ExchangeLeaf(HTLeaf l1, IHTNode l2)
                {
                    object temp;

                    temp       = l1._Parent;
                    l1._Parent = l2._Parent;
                    l2._Parent = (HTNode)temp;
                    temp       = l1.code;
                }
Esempio n. 2
0
            public bool Contain(char c)
            {
                HTLeaf leaf = (HTLeaf)nodes.Find(l => l is HTLeaf && (l as HTLeaf).sim == c);

                if (leaf != null)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
Esempio n. 3
0
            public void Add(char c)
            {
                EscapeNode esc          = (EscapeNode)nodes.Find(node => node is EscapeNode);
                HTNode     oldEscParent = esc._Parent;
                HTNode     newNode      = new HTNode(null, esc, esc._Parent);

                if (oldEscParent != null)
                {
                    oldEscParent._Left = newNode;
                }
                HTLeaf newLeaf = new HTLeaf(newNode, c);

                newNode._Right = newLeaf;
                //esc._Parent._Left = newNode;
                //if (newNode._Parent != null)
                //    newNode.code = "1" + newNode._Parent.code;
                //else
                //    newNode.code = "1";
                //esc.code += "1";

                //UpdateNodes();
            }