Ejemplo n.º 1
0
bool
TA234Nodo::InsertarAux (TComplejo c)
{
	bool salida = false;
	
	if (tipo_nodo == 1)
	{
		if (c != itIz)
		{
			if (c.Comparar (itIz))
			{
				itDe = itMe;
				
				itMe = itIz;
				
				itIz = c;
			}
			
			else
			{
				itDe = itMe;
				
				itMe = c;
			}
			
			tipo_nodo++;
			
			salida = true;
		}
	}
	
	else if (tipo_nodo == 2)
	{
		if (c != itIz && c != itMe)
		{
			if (c.Comparar (itIz))
			{
				itDe = itMe;
				
				itMe = itIz;
				
				itIz = c;
			}
			
			else if (c.Comparar (itMe))
			{
				itDe = itMe;
				
				itMe = c;
			}
			
			else
			{
				itDe = c;
			}
			
			salida = true;
			
			tipo_nodo++;
		}
	}
	
	return (salida);
}
Ejemplo n.º 2
0
int
TA234Nodo::Comparar (TComplejo c)
{
	if (tipo_nodo == 1 && hijoIz.raiz != NULL && hijoMeIz.raiz != NULL)
	{
		if (c == itIz)
		{
			return 0;
		}
		
		else if (c.Comparar(itIz))
		{
			return 1;
		}
		
		else
		{
			return 2; 
		}
	}
	
	else if (tipo_nodo == 2 && hijoIz.raiz != NULL && hijoMeIz.raiz != NULL && hijoMeDe.raiz != NULL)
	{
		if (c == itIz || c == itMe)
		{
			return 0;
		}
		
		else if (c.Comparar(itIz))
		{
			return 1; 
		}
		
		else if (c.Comparar (itMe))
		{
			return 2; 
		}
		
		else
		{
			return 3; 
		}
		
	}
	
	else if (tipo_nodo == 3 && hijoIz.raiz != NULL && hijoMeIz.raiz != NULL && hijoMeDe.raiz != NULL && hijoDe.raiz != NULL)
	{
		if (c == itIz || c == itMe || c == itDe)
		{
			return 0;
		}
		
		else if (c.Comparar(itIz))
		{
			return 1; 
		}
		
		else if (c.Comparar (itMe))
		{
			return 2; 
		}
		
		else if (c.Comparar (itDe))
		{
			return 3; 
		}
		
		else
		{
			return 4;
		}
	}
	
	else
	{
		return 5;
	}
}
Ejemplo n.º 3
0
bool 
TA234Com::Buscar (TComplejo c)
{
	bool salida = false;
	
	if (!EsVacio())
	{
		if (raiz -> tipo_nodo == 1)
		{
			if (c == raiz -> itIz)
			{
				salida = true;
			}
			
			else
			{
				if (c.Comparar (raiz -> itIz))
				{
					salida = raiz -> hijoIz.Buscar(c);
				}
				
				else
				{
					salida = raiz -> hijoMeIz.Buscar(c);
				}
			}
		}
		
		else if (raiz -> tipo_nodo == 2)
		{
			if (c == raiz -> itIz || c == raiz -> itMe)
			{
				salida = true;
			}
			
			else
			{
				if (c.Comparar (raiz -> itIz))
				{
					
					salida = raiz -> hijoIz.Buscar (c);
					
				}	
				
				else
				{
					if (c.Comparar (raiz -> itMe))
					{
						salida = raiz -> hijoMeIz.Buscar (c);
					}
					
					else
					{
						salida = raiz -> hijoMeDe.Buscar (c);
					}
				}
			}
		}
		
		else if (raiz -> tipo_nodo == 3)
		{
			if (c == raiz -> itIz || c == raiz -> itMe || c == raiz -> itDe)
			{
				salida = true;
			}
			
			else
			{
				if (c.Comparar (raiz -> itIz))
				{
					salida = raiz -> hijoIz.Buscar (c);
				}
				
				else
				{
					if (c.Comparar (raiz -> itMe))
					{
						salida = raiz -> hijoMeIz.Buscar (c);
					}
					
					else
					{
						if (c.Comparar (raiz -> itDe))
						{
							salida = raiz -> hijoMeDe.Buscar (c);
						}
						
						else
						{
							salida = raiz -> hijoDe.Buscar (c);
						}
					}
				}
			}
		}
	}
	
	return (salida);
}