Знаете ли вы диапазон чисел?Если это так, возможно, имеет смысл использовать массив.Например, если бы я знал, что диапазон чисел был между 0 и 10, я бы создал массив размером 10. Каждый элемент в этом массиве будет подсчитывать количество раз, которое я видел данное число.Тогда вам просто нужно запомнить наиболее часто встречающееся число.
например,
array[10];
freq_index = -1;
freq_count = -1;
readVal(int n){
array[n]+=1;
if array[n] > freq_count
freq_index = n;
freq_count = array[n];
}
Конечно, такой подход плох, если распределение чисел редкое.
Я бы попробовал приоритетную очередь.