2010-05-08 8 views
9

Bugün fenwick ağaçları (ikili indeksli ağaçlar) hakkında bir konferans dinledim ve öğretmen bu ağacın aralık ve segment ağaçlarının bir genellemesi olduğunu söylüyor, ancak bu üç veri yapısına ilişkin uygulamalarımız farklı. Bu doğrudur mu? ve neden?Aralık, segment, fenwick ağaçları aynı mıdır?

+3

"A, B'nin genelleştirmesi" ve "A'nın B ile aynı olduğunu" belirten bir fark vardır. –

cevap

5

Hiç bir şeyin genelleştirilmesi olarak adlandırılan binary indexed trees duymadım. Bu kesinlikle interval trees ve segment trees'un bir genelleştirmesi değildir. Kendinizi buna ikna etmek için bağlantıları takip etmenizi öneririm. Bu ağacın daha

o yanlıştır, aralık ve segment ağaçları

"bu ağacın" ederek öğretmen "ikili endeksli ağaç" demekse

bir genellemedir.

ama bu üç veri yapılarının benim uygulamaları

Öğretmeniniz onlar olmamalı demedim, onlar farklıdır Tabii

farklıdır. Sadece birinin diğerinin genelleştirilmesi olduğunu söyledi (ki bu doğru değil, ama hala). Her iki durumda da, uygulamaların farklı olması gerekiyordu. olanlar aynı şeyçünkü aynı uygulama olurdu ne

, bir ikili endeksli ağacı ve bir fenwick ağacıdır.

+0

Topcoder'ın makalesini gördüm ve BIT'deki birçok sorgu aralıklı ağaçlara benziyor. – Luiguis

+2

Benzer olabilir, ancak bu, bir veri yapısının bir diğerinden kaynaklandığını söyleyebileceğiniz anlamına gelmez. Aralık ağacındaki bir düğüm, ana düğümün tuttuğu aralığın yarısını tutarken, BIT'deki bir düğüm, bir sayının ikili temsili tarafından verilen bir aralığa sahiptir. – IVlad

10

Aşağıdaki sınıflandırma mantıklı görünüyor, ancak farklı insanlar bu terimleri karıştırmak zorunda kalıyor.

Fenwick ağaç/Binary-endeksli ağaçlink

Eğer önek meblağlar (diğer adıyla kümülatif toplamlar) depolamak için ikili gösterimine tek bir dizi ve operasyonları kullandığınız bir. Elementler bir monoid üyesi olabilir.

sınıf ağaçlink

her bir düğüm belirli bir aralıkta bir subrange temsil ağaç ailesi, ki [0, N],. Aralıklardaki ilişkisel işlemleri hesaplamak için kullanılır. Eğer gerçek aralıklarını depolamak

Aralığı ağaçlink

Ağaçlar. En sık olarak bir orta noktayı alırsınız, kesişen aralıkların düğümde kalmasını sağlayın ve aralıklar için noktaların sola ve sağına kadar tekrarlayın. Yaprakları bir olasılıkla sürekli uzayda ilköğretim aralıkları yerine ayrık ve yüksek düğümleri olduğu bir dizi ağacına benzer

Segment ağaçlink

ilköğretim aralıkları birlikleri bulunmaktadır. Nokta eklenmesini kontrol etmek için kullanılır.