Basit bir BST rastgele elemanların yerleştirilmesi sırası ile, tam ağacı yürüme olmadan belirli bir elementin daha küçüktür kaç unsurlar belirlemek için bir yol var.
Eğer böyle bir kırmızı-siyah ağaç olarak dengeli bir ağaç olsaydı, o zaman en azından nedeniyle ağacın yüksekliği üzerinde sınırları için endeks üzerinde alt ve üst sınır koyabilirsiniz. Bir BST elemanlarının yerleştirilmesi sırası tekrar olmayan rasgele ise, bunu yürüyen olmadan ağaç yüksekliği hakkında bir şeyler söylemek ve yaklaşık endeksinin bazı tahminini verebilir.
Yardımcı veri yapıları gelince, onların dizine unsurları eşleyen bir yardımcı sözlüğü oluşturabilirsiniz. Ancak, bu dizin oluşturma (K) O alır ve BST yeni unsurlar eklerken endeksi bayat olur, bu nedenle bu sadece seyrek güncellemeleri ile BSTS için iyi çalışır.
indeksi ve saymak: Başka bir çözüm iki özelliklere sahip BST düğümleri uzatmaktır. endeks bu düğümünde daha küçüktür birçok element ağacındaki nasıl söylüyor. sayım birçok unsurları son o düğümün endeksi güncellenen BST içinde ne kadar söylüyor. Ekleme, silme nispeten basit değişikliklerle ve sabit zamanın ötesinde bu temel işlemleri etkilemez, ve O (1) doğrudan elementin endeksi alabilirsiniz, BST'de arayın.
Eğer yeni bir düğüm eklemek gibi yeni eleman daha küçük ise Esasen, her düğüm için size, aşağı doğru yolda geçmektedir (sonraki adım, sol çocuğa bir araştırma), bu düğümün hem indeksini ve sayısını artırır. Yeni elementin yer bulmak verirseniz, kendi üst dayalı bir sayım ve ana şirketinin ve sol çocuk için geçerli bir dizin verir. Bu yanlış bir indeksi yenisi daha elementler daha büyük bırakır, ancak ebeveynin sayım değerine bakarak bir unsuru aramak gibi kolayca güncelleme olabilir - fark ebeveynin sayımı ve çocuk arasındaki nasıl söyler sadece endekse bu farkı eklemek yani en son, çocuğun endeksi güncellenen beri küçük elemanların birçok eklemeleri oldu.