void bsTree<T>::insert(TNode<T> *node, T value)//must be passed root { if(size==0) //If tree is empty { TNode<T> *t = new TNode<T>(value); root = t; size++; } else if(value < node->getValue()) //if value is less than node's value { if(node->getLeft() == NULL) //if node's left is NULL, places new node there { TNode<T> *t = new TNode<T>(value); node->setLeft(t); t->setParent(node); size++; } else //else recursively searches left side insert(node->getLeft(), value); } else if(value > node->getValue()) //if value is greater than node's value { if(node->getRight() == NULL) //if node's right is NULL, places new node there { TNode<T> *t = new TNode<T>(value); node->setRight(t); t->setParent(node); size++; } else //else recursively searches to the right insert(node->getRight(), value); } }
void KTREE::insert (TNode* node,int ch) { TNode* tmp; //insert to tree point=top; if (top==0) { top=new TNode(); top->setElement(node->getElement()); top->setParent(0); for (int i=0;i<MAX;i++) top->setChild(node->getChild(i),i); point=top; } else { while (point!=0) { tmp=point; point=point->getChild(ch); } point=tmp; addLeaf(node,ch); } }