Esempio n. 1
0
        private Node234 getNextChild(Node234 theNode, string dValue)
        {
            int j;
            int numItems = theNode.getNumItems();

            for (j = 0; j < numItems; j++)
            {
                if (string.Compare(dValue, theNode.getItem(j).Value, StringComparison.CurrentCulture) < 0)
                {
                    return(theNode.getChild(j));
                }
            }
            return(theNode.getChild(j));
        }
Esempio n. 2
0
        public void insert(string dValue)
        {
            Node234  curNode  = root;
            DataItem tempItem = new DataItem(dValue);
            //Check to see if value already exists
            Node234 found = find(dValue);

            if (found != null)
            {
                DataItem it = found.getItem(found.findItem(dValue));
                if (it != null)
                {
                    it.occurences++;
                    counter++;
                    return;
                }
                else
                {
                    throw new Exception("Could not find string occurence for: " + dValue);
                }
            }
            while (true)
            {
                if (curNode.isFull())
                {
                    split(curNode);
                    curNode = curNode.getParent();
                    curNode = getNextChild(curNode, dValue);
                }
                else if (curNode.isLeaf())
                {
                    break;
                }
                else
                {
                    curNode = getNextChild(curNode, dValue);
                }
            }

            curNode.insertItem(tempItem);
            counter++;
        }