Código
struct Elemento { char valor; int repeticiones; };
El algoritmo sería el siguiente. Ahora es trabajo tuyo entenderlo y traducirlo al lenguaje que quieras ya sea C o C++.
Código:
caracteres : array de char
elementos : array de Elemento
PARA i := 0 HASTA length(caracteres)-1 INCREMENTO 2 HACER
indice = buscar(caracteres[i], elementos)
SI indice < 0 ENTONCES
agregar(caracteres[i], elementos)
SINO
incrementar(elementos[indice])
FIN SI
FIN PARA
ordenar(elementos) // en base al numero de repeticiones
PARA i := 0 HASTA length(elementos) - 1 INCREMENTO 1 HACER
PARA j := 1 HASTA elementos[i].repeticiones INCREMENTO 1 HACER
insertar(caracteres, elementos[i].valor)
FIN PARA
FIN PARA