Hızlı bir şekilde aşağıdakileri yapabilmeniz için 0 ile 65535 arasındaki tamsayılar üzerinde bir koleksiyon tutmam gerekiyor:
- Yeni bir tamsayı ekle
- Bir dizi bitişik tamsayı ekleme
- Bir tamsayıyı kaldırma
- Bir tamsayının altındaki tüm tam sayıları kaldır
- Bir tamsayı olup olmadığını test edin
Verilerim, koleksiyonda genellikle tamsayılar çalıştırdığı özelliği içeriyor. Örneğin, koleksiyon zamanın bir noktasında olabilir:
{ 121, 122, 123, 124, 3201, 3202, 5897, 8912, 8913, 8914, 18823, 18824, 40891 }
En basit yaklaşım sadece C ++ std :: set gibi dengeli bir ikili ağaç kullanmaktır, ancak bunu kullanarak, sık sık sayıların olduğu gerçeğinden yararlanmıyorum. Belki bir dizi koleksiyon saklamak daha iyi olur? Ancak bu, bir tamsayı ortadan kaldırılırsa bir aralığın parçalanabilmesi veya iki aralık arasındaki boşluk doldurulduğunda birleştirilmesi gerektiği anlamına gelir.
Bu soruna uygun olabilecek mevcut veri yapıları var mı?