Está en la página 1de 2

Prueba 1 Algoritmos y Estructura de datos

Profesor Ibar Ramírez Varas


Segundo semestre 2022

Nombre:

1. Una manera de encriptar mensajes (no muy segura), es colocar paréntesis de manera
arbitraria, y todo lo que está dentro de un paréntesis, ponerlo al revés, por ejemplo
“Olimpiada de Informática” se puede encriptar como “Olimpia(ad) de I(rofn)matica”, los
paréntesis también se pueden anidar, es decir, otra forma de encriptar el mismo mensaje
podría ser “Olimpia(am(nfor)I ed (da))tica”. Escribe un programa, que dado un mensaje
encriptado, determine el mensaje original. (1 pto.)

2. Dado un árbol binario en el que cada nodo del árbol tiene un valor entero, encuentre el nodo
que tiene el valor mayor. Suponga que los valores de los nodos no están repetidos. Para el
subárbol que tiene como raíz el valor mayor sume todos sus valores. Escriba una función en
java que reciba un árbol binario y un valor x y retorne la suma de todos los valores
almacenados en el subárbol que tiene como raíz el valor mayor. (2,5 ptos)

public int sumaMayor(Nodo p, x){


ArrayList<Nodo> lista = new ArrayList<>();
inorden(p, lista);
mayor = lista.get(0).elemento;
for(Nodo n: lista)
if( n.elemento > mayor){
mayor = n.elemento;
q = n;
}
lista.clear()
inorden(q,lista)
suma = 0
for(Nodo l: lista)
suma = suma + .elemento;
return suma;
}

3. Diseñar y escribir una función tal que dado un árbol binario de enteros, determine si dicho
árbol está equiponderado. Un árbol binario está equiponderado si se cumple que para todo
nodo el peso del subárbol izquierdo es igual al peso del subárbol derecho. El árbol binario
vacío está equiponderado por definición. Llamamos peso de un árbol a la suma de todos sus
elementos. (2,5 ptos)
public boolean equiponderados(Nodo p){
if( p != null){
p1 = peso(p.izq);
p2 = peso(p.der);
return p1 == p2 && equiponderado(p.izq) && equiponderado(p.der);
}
else
return true;
}

public int peso(Nodo p){


List lista = new ArrayList();
inorden(p, lista)
suma = 0;
for(Integer valor: lista)
suma = suma + valor;
return suma;
}

También podría gustarte