node curnode rootint childnumberwhile(trueif(childnumber=curnode finditem(key!- return childnumber/found it else ifcurnode isleaf(return - /can' find it else /search deeper curnode getnextchild(curnodekey)/end while //insert dataitem public void insert(double dvaluenode curnode rootdataitem tempitem new dataitem(dvalue)while(trueifcurnode isfull(split(curnode)curnode curnode getparent()/if node full/split it /back up /search once curnode getnextchild(curnodedvalue)/end if(node is fullleafelse ifcurnode isleaf(/if node is break/go insert /node is not fullnot leafso go to lower level else curnode getnextchild(curnodedvalue)/end while curnode insertitem(tempitem)dataitem /end insert(/insert new /public void split(node thisnode/split the node /assumes node is full dataitem itembitemc