Bu sözde ödev (ekstra kredi var) 'dir. Ben sözcükleri içeren (başka bir yerde saklanan) hatlarına işaret kelimelerin bir indeks olan bir BST var. (|) I birleştirmek ve (&) ve ya böylece ben s-ifadeler kullanarak aramak için bir yol uygulamak gerekir.
Komutanım gibi bir şey yazabilirsiniz bir kullanıcı istemi:
QUERY ((((fire)&(forest))|((ocean)&(boat)))&(water))
Esasen bu kelimeler yangın, orman ve su yanı sıra okyanus, tekne ve su içeren tüm satırları içeren tüm satırları dönmelidir.
Ya gerçekten yardıma ihtiyacı düzgün gerçek kodundan daha ifadesini temsil etmek ağaca ayrıştırma ve yerleştirme düğümleri için mantıktır. Beni ifadesinde her kelime için bir dizi çizgi dönen ben dışarı çalışmış tek şey mantıklı. bir veya veya ve operasyonu yeni bir kümesi oluşturmak ve ağacın yukarı o aktarmak bu setlerinde bir birlik veya kavşak tipi işlemi gerçekleştirmek istiyorum eğer Sonra bağlı.
Ben tür ifadesini içeren satırı ayrıştırmak için nasıl kayboldum. bazıları alt ifadelerin biri üzerinden uzak benim s-ifadesi ağacında olmalıdır yüksek olduğunu görünür düşündükten sonra? Sadece bildiğim kadarıyla ayrıştırma olarak doğru yönde bir itme alabilir ve ağaçta ifadeleri ekleme tamam olması gerekiyorsa sanırım.
Ben sorgu yukarıdaki gibi görünür için geldi Benim örnek ağaç;
&
/ \
| water
/ \
& &
/ \ / \
fire forest ocean boat
Bu yangın Bütün ormanı ihtiva çizgilerin bir dizi dönecekti yangın ve orman ihtiva çizgilerin bir dizi dönecekti olarak mantıklı. O zaman en & seviye O iki set almak ve böylece bana sadece yangın ve orman her ikisini de içerir hattına sahip bir dizi vererek her iki takımdaki vardı sadece çizgileri içeriyordu başka bir set oluşturacak.
Benim diğer engel ben ayrıştırma engel aşmak sonra ağaçta şeyi temsil etmek nasıl. Benim ExpTree (BST) için düğümlerin olarak görev yapacak bir ExpTreeNode sınıf var ve sonra 2 alt sınıfları, operatör ve işlenen var, ama bu iyi bir yaklaşım olup olmadığından emin değilim.













