code: public int addBiggestElement(int element, int treap) {
  		int treap_;
  		if (treap == -1) {
  			if (m_defaultTreap == nullNode())
  				m_defaultTreap = createTreap(-1);
  			treap_ = m_defaultTreap;
  		} else {
  			treap_ = treap;
  		}
  
  		if (getRoot_(treap_) == nullNode()) {
  			int newNode = newNode_(element);
  			setRoot_(newNode, treap_);
  			addToList_(-1, newNode, treap_);
  			return newNode;
  		}
  
  		int cur = getLast_(treap_);
  		int newNode = newNode_(element);
  		setRight_(cur, newNode);
  		setParent_(newNode, cur);
  		assert (m_b_balancing);// don't use this method for unbalanced tree, or
  								// the performance will be bad.
  		bubbleUp_(newNode);
  		if (getParent(newNode) == nullNode())
  			setRoot_(newNode, treap_);
  
  		addToList_(-1, newNode, treap_);
  		return newNode;
  	}
docs: performance (it does not call the treap comparator).