Example #1
0
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);	
	}
}
Example #2
0
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);
		
		}
	}