Esempio n. 1
0
string brackets(Arbin<T> t){
  //Caso base - Es vacio
  if t.esVacio() return "()";
  //Caso recursivo
  

  return brackets(t.hijoIz() + t.raiz() + t.hijoDr());
}
Esempio n. 2
0
int main() {
	int ncasos;
	cin >> ncasos;
	Arbin<char> a;

	for (int i = 0; i < ncasos; i++) {
		a = leerArbol('.');
		a.frontera();
		cout << endl;
	}
	return 0;
}
Esempio n. 3
0
File: 0901I.cpp Progetto: mbelda/EDA
int main(){
	int ncasos, numero;
	cin >> ncasos;
	Arbin<int> a;

	

	for (int i = 0; i < ncasos; i++){
		cin >> numero;
		auto requisitos = [numero](int num) -> bool {
			return num % numero == 0;
		};
		a = leerArbol(-1);
		cout << a.nNodosCumplenF(requisitos) << endl;
	}
	return 0;
}
Esempio n. 4
0
bool esMonticulo(const Arbin<int> &a) {
	if (a.esVacio()) //BASE si es vacío SÍ es heap
	{
		return true;
	}
	else
	{
		if (a.hijoIz().talla() - a.hijoDr().talla() == 0 || a.hijoIz().talla() - a.hijoDr().talla() == 1)
		{
			if ((a.hijoIz().esVacio() || a.raiz() < a.hijoIz().raiz())
				&& (a.hijoDr().esVacio() || a.raiz() < a.hijoDr().raiz())) 
				// PASO RECURSIVO, es heap si los dos hijos lo son
			{
				return esMonticulo(a.hijoIz()) && esMonticulo(a.hijoDr());
			}
			else // BASE si una de las raíces de los hijos es mayor que la raíz padre NO es heap
			{
				return false;
			}
		}
		else // BASE si no está balanceado por la izquierda NO es heap
		{
			return false;
		}
	}
}