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


C++ Nodo::getHijoIzquierdo方法代码示例

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


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

示例1: obtenerMenorDeLosMayores

Registro* ArbolBiselado::obtenerMenorDeLosMayores(Nodo* nodo){
	Nodo* nodoActual = nodo;
	while(true)
	{
	    try
	    {
            nodoActual = nodoActual->getHijoIzquierdo();
	    }
	    catch(NumeroDeBloqueInvalido e)
	    {
	        break;
	    }
		nodosARotar->apilar(nodoActual);
		movimientos->apilar('i');
	}
	//En caso de que el nodo hoja que contenia el registro sustituto
	//haya quedado vacio, lo desapilo para el biselado y elimino la duplicacion
	desapilarSiNodoQuedaVacio(nodoActual);

	  //obtengo el registro original a eliminar
	nodoActual->getListaDeRegistros()->iniciarCursor();
	nodoActual->getListaDeRegistros()->avanzarCursor();
	Registro* original = nodoActual->getListaDeRegistros()->obtenerCursor();

	//duplico su informacion en el que se insertara en el nodo que quedo vacio
	Registro* duplicado = new Registro(original->getID(),original->getCodigo(), original->getDescripcion());

	if(nodoActual->getListaDeRegistros()->getTamanio() > 1
	   || nodoActual->esHoja())
	{
		 nodoActual->eliminarRegistro(original);
	}
	else //en caso de que no (esta es la recursion) y el nodo prestador a su vez
		//queda vacio le aplico recursion para que busque otra vez el menor de los mayores
		//o mayor de los menores y repita todo el proceso, mejor dicho.
	{
		//fijate que en el unico caso que hay que hacer recursion
		//es si caemos en un nodo interno con un solo registro
		// (A || B) == ¬A && ¬B.
		eliminarEnNodoInterno(original,nodoActual);
	}
	return duplicado;
}
开发者ID:MarianoCinalli,项目名称:OrganizacionDeDatosTP1,代码行数:43,代码来源:ArbolBiselado.cpp


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