本文整理汇总了C++中Lista::insertarFinalNodoLista方法的典型用法代码示例。如果您正苦于以下问题:C++ Lista::insertarFinalNodoLista方法的具体用法?C++ Lista::insertarFinalNodoLista怎么用?C++ Lista::insertarFinalNodoLista使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Lista
的用法示例。
在下文中一共展示了Lista::insertarFinalNodoLista方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: equilibrar
// Añadimos bolas hasta que se cumpla la condición de equilibrio
void equilibrar() {
//variables para los cálculos
int dato;
int peso;
int NI = 2; //Nivel
int ND = 2;
int DI = 1; //Divisiones o veces a realizar
int DD = 1;
int PI = 1; //Posición
int PD = 3;
int CD = 1; //Contador veces
int CI = 1;
pNodoLista aux;
aux = pesos.getPrimero();
// Podamos el árbol para crear uno nuevo
arbolInt.podar(arbolInt.getRaiz());
// Borra la lista
if(!hayLista) pesos.~Lista();
// Inicializa los valores del árbol
arbolInt.inicializar();
// Inicializa los valores de la lista
if(!hayLista) pesos.inicializar();
//iniciamos el nodo raíz con el valor intermedio y peso 0 para que no cuente en el total
arbolInt.insertar(intermedio, 0);
//realizamos las operaciones hasta que el arbol este equilibrado
do
{
if (arbolInt.getPesoDerecha()<arbolInt.getPesoIzquierda()) //Insertamos en la derecha por tener un peso inferior
{
cout << "Insertamos en el lado derecho ";
dato = numeroDerecha(ND,PD);
if(!hayLista) peso = pesoAleatorio();
if(hayLista)
{
if(aux)
{
peso = aux->getPeso();
cout << "la bola con peso " << peso << endl;
aux = aux->getSiguiente();
} else hayLista = false;
}
arbolInt.insertar(dato, peso);
if(!hayLista) pesos.insertarFinalNodoLista(dato, peso);
cout << "Actualizamos informacion: " << endl;
cout << "Peso total del arbol " << arbolInt.getPesoTotal() << endl;
cout << "Peso total de la derecha " << arbolInt.getPesoDerecha() << endl;
cout << "Peso total de la izquierda " << arbolInt.getPesoIzquierda() << endl;
cout << endl;
if (CD==DD) //Se igualan los valores contador y divisiones y pasamos al próx nivel
{
ND = ND * 2; //Pasamos de nivel
DD = DD * 2; //Aumento el número de divisiones
PD = PD + 2; //Aumento de la posisción de 2 en 2 para evitar usar el número del padre
CD = 1; //Iniciamos contador
}
else { //Si el contador no es igual al número de divisiones
PD = PD + 2; //Aumento de la posiscion de 2 en 2 para evitar usar el número del padre
CD++; //Aumento contador
}
}
else { //Si no insertamos en la izquierda
cout << "Insertamos en el lado izquierdo ";
dato = numeroIzquierda(NI,PI);
if(!hayLista) peso = pesoAleatorio();
if(hayLista)
{
if(aux)
{
peso = aux->getPeso();
cout << "la bola con peso " << peso << endl;
aux = aux->getSiguiente();
} else hayLista = false;
}
arbolInt.insertar(dato, peso);
if(!hayLista) pesos.insertarFinalNodoLista(dato, peso);
cout << "Actualizamos informacion: " << endl;
cout << "Peso total del arbol " << arbolInt.getPesoTotal() << endl;
cout << "Peso total de la derecha " << arbolInt.getPesoDerecha() << endl;
cout << "Peso total de la izquierda " << arbolInt.getPesoIzquierda() << endl;
cout << endl;
if (CI == DI) //Se igualan los valores contador y divisiones y pasamos al próx nivel
{
NI = NI * 2; //Pasamos de nivel
DI = DI * 2; //Aumento el número de divisiones
PI = 1; //Inicializamos la posición
CI = 1; //Iniciamos contador
}
else { //Si el contador no es igual al número de divisiones
PI = PI + 2; //Aumento de la posisción de 2 en 2 para evitar usar el número del padre
CI++; //Aumento contador
}
}
} while (!arbolInt.estaEquilibrado());//Repetir hasta que se cumpla
//.........这里部分代码省略.........