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


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

本文整理汇总了C++中BinaryNode::getrightChildPtr方法的典型用法代码示例。如果您正苦于以下问题:C++ BinaryNode::getrightChildPtr方法的具体用法?C++ BinaryNode::getrightChildPtr怎么用?C++ BinaryNode::getrightChildPtr使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在BinaryNode的用法示例。


在下文中一共展示了BinaryNode::getrightChildPtr方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: remove

void BST::remove(int x)
{
	    /*Couple cases of removing an item
    *1. Removing the root
    *2.	Removing a leaf
    *3. Removing something in the middle
    */

    //1
    if (rootPtr->getItem()==x)
    {
        BinaryNode* toDelete = rootPtr;
        rootPtr = rootPtr->getLeftChildPtr();
        BinaryNode* rightChild = rootPtr->getRightChildPtr();
        BinaryNode* leftChild = rootPtr->getLeftChildPtr();

        delete toDelete;
        while (leftChild->getrightChildPtr()!=nullptr)//keeps traversing down
        {
            leftChild = leftChild->getRightChildPtr();
        }   

        leftChild = leftChild->setRightChildPtr(rightChild);
    }
    else
    {    
    	BinaryNode* parent = search(x, rootPtr, rootPtr);


    	int dir;
    	if (parent->getrightChildPtr()==x)
    	{
    		BinaryNode* toDelete = parent->getrightChildPtr();
    		dir =0;
    	}
    	else
    	{
    		BinaryNode* toDelete = parent->getLeftChildPtr();
    		dir=1;
    	}

    	//Now we encounter our next two cases:
    	//2. if it's a leaf

    	if (toDelete->getrightChildPtr==nullptr && toDelete->getLeftChildPtr==nullptr)
    	{
    		delete toDelete;
    		if (dir==0)
    		{
    			parent->setRightChildPtr(nullptr);
    		}
    		else
    		{
    			parent->setLeftChildPtr(nullptr);
    		}
    	}


    	//3. Something in the middle

    	BinaryNode* leftChild = toDelete->getLeftChildPtr();
    	BinaryNode* rightChild = toDelete->getRightChildPtr();
    }

}
开发者ID:youngliu323,项目名称:EECS_560,代码行数:65,代码来源:BST.cpp


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