本文整理汇总了C++中BinaryNode::isLeftChild方法的典型用法代码示例。如果您正苦于以下问题:C++ BinaryNode::isLeftChild方法的具体用法?C++ BinaryNode::isLeftChild怎么用?C++ BinaryNode::isLeftChild使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BinaryNode
的用法示例。
在下文中一共展示了BinaryNode::isLeftChild方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: add
int BinaryHeap::add(int data){
// Check if item already exists
if(exists(data)){
return 0;
}
// Item doesn't exists, add to last
BinaryNode* newNode;
newNode = new BinaryNode(data);
if(isEmpty()){
root = newNode;
last = newNode;
}
else{
BinaryNode* currentNode = last;
// If our current node is not a left child or not root, move to it's parent
while(currentNode->isRightChild()){
currentNode = currentNode->parent;
}
// Get current sibling, or set node if no sibling
if(currentNode->isLeftChild()){
if(currentNode->hasSibling()){
currentNode = currentNode->parent->rightChild;
}
else{
currentNode = currentNode->parent;
currentNode->setRightChild(*newNode);
last = newNode;
sort();
return 1;
}
}
// Move down the left side of the tree/subtree until we hit a leaf
while(currentNode->hasLeftChild()){
currentNode = currentNode->leftChild;
}
currentNode->setLeftChild(*newNode);
last = newNode;
sort();
}
return 1;
}