ট্র্যাক
/
F#
F#
/
অনুশীলনী
/
ট্রি বিল্ডিং
ট্রি বিল্ডিং

ট্রি বিল্ডিং

মধ্যম

নির্দেশনা

একটি ট্রি বিল্ডিং অ্যালগরিদম রিফ্যাক্টর করুন।

কিছু ওয়েব ফোরামে ট্রি লেআউট থাকে, তাই পোস্টগুলো ট্রি আকারে দেখানো হয়। তবে পোস্টগুলো সাধারণত ডেটাবেজে সাজানো নেই এমন একগুচ্ছ রেকর্ড হিসেবে জমা থাকে। তাই ব্যবহারকারীকে পোস্টগুলো দেখানোর সময় ট্রি স্ট্রাকচারটি নতুন করে তৈরি করতে হয়।

আপনার কাজ হবে এমন একটি কোড রিফ্যাক্টর করা, যা কাজ করে কিন্তু ধীর ও কুৎসিত, আর অত্যন্ত অ্যাবস্ট্র্যাক্টেড রেকর্ডের জন্য ট্রি বিল্ডিং লজিক বাস্তবায়ন করে। রেকর্ডগুলোতে শুধু একটি 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 রান করুন।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
F# Exercism

ট্রি বিল্ডিং শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, F# ট্র্যাকের 18টি কনসেপ্ট148টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।