当前位置: 首页>>代码示例>>C++>>正文


C++ BinaryNode::isLeftChild方法代码示例

本文整理汇总了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;
}
开发者ID:balajinandhu,项目名称:School-Projects-Assignments,代码行数:46,代码来源:BinaryHeap.cpp


注:本文中的BinaryNode::isLeftChild方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。