ट्री बनाने वाले एल्गोरिदम को रीफैक्टर कीजिए।
कुछ वेब-फोरम का लेआउट ट्री जैसा होता है, इसलिए पोस्ट ट्री के रूप में दिखाए जाते हैं। लेकिन पोस्ट आम तौर पर डेटाबेस में रिकॉर्ड के ऐसे समूह के रूप में संग्रहीत होते हैं जिसमें कोई क्रम नहीं होता। इसलिए जब उपयोगकर्ता को पोस्ट दिखाए जाते हैं, तो ट्री की संरचना फिर से बनानी पड़ती है।
आपको कोड के एक ऐसे हिस्से को रीफैक्टर करना है जो काम तो करता है, लेकिन धीमा और बदसूरत है। यह कोड ऐसे रिकॉर्ड के लिए ट्री बनाने का तर्क लागू करता है जो बहुत अमूर्त होते हैं। इन रिकॉर्ड में सिर्फ एक ID संख्या और एक पैरेंट ID संख्या होती है। ID संख्या हमेशा 0 (सम्मिलित) और रिकॉर्ड ऐरे की लंबाई (असम्मिलित) के बीच होती है। हर रिकॉर्ड का पैरेंट ID उसके अपने ID से छोटा होता है, सिवाय रूट रिकॉर्ड के, जिसका पैरेंट ID उसके अपने ID के बराबर होता है।
ट्री का एक उदाहरण:
root (ID: 0, parent ID: 0)
|-- child1 (ID: 1, parent ID: 0)
| |-- grandchild1 (ID: 2, parent ID: 1)
| +-- grandchild2 (ID: 4, parent ID: 1)
+-- child2 (ID: 3, parent ID: 0)
| +-- grandchild3 (ID: 6, parent ID: 3)
+-- child3 (ID: 5, parent ID: 0)
अगर आप अपने हल की तुलना उस हल से करना चाहते हैं जिससे आपने शुरू किया था, तो benchmark डायरेक्टरी में जाइए और dotnet run चलाइए।
Exercism पर साइन अप कीजिए और F# को 18 कॉन्सेप्ट148 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।