কার্য
একটি সম্পূর্ণ বাইনারি গাছের প্রাক-অর্ডার এবং পোস্ট-অর্ডার ট্র্যাভারসালগুলি দেওয়া, এটির ক্রমটি ট্রেনসালটিকে ফিরে আসুন।
ট্র্যাভারসালগুলিকে দুটি তালিকা হিসাবে উপস্থাপন করা হবে, উভয়ই এন স্বতন্ত্র ধনাত্মক পূর্ণসংখ্যার সমন্বয় করবে, প্রতিটি স্বতন্ত্রভাবে একটি নোড সনাক্ত করবে। আপনার প্রোগ্রামটি এই তালিকাগুলি নিতে পারে এবং কোনও যুক্তিসঙ্গত I / O ফর্ম্যাট ব্যবহার করে ফলাফলের ক্রম ট্র্যাভারসাল আউটপুট দেয়।
আপনি ইনপুটটি বৈধ বলে ধরে নিতে পারেন (তা হল তালিকাগুলি আসলে কিছু গাছের traversals উপস্থাপন করে)।
এটি কোড-গল্ফ , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।
সংজ্ঞা
একটি পূর্ণ বাইনারি ট্রি হ'ল নোডের সীমাবদ্ধ কাঠামো , এখানে অনন্য ইতিবাচক পূর্ণসংখ্যার দ্বারা উপস্থাপিত হয়।
একটি পূর্ণ বাইনারি গাছ হয় একটি পাতা যা একটি নোড সমন্বিত :
1
বা একটি শাখা , দুটি সাবট্রির (একটি বাম এবং ডান সাবট্রিস বলা হয় ) সহ একটি নোড সমন্বিত একটি শাখা , যার প্রতিটিই ঘুরে ফিরে একটি সম্পূর্ণ বাইনারি গাছ:
1 / \ … …
এখানে একটি পূর্ণ বাইনারি গাছের একটি সম্পূর্ণ উদাহরণ:
6
/ \
3 4
/ \ / \
1 8 5 7
/ \
2 9
প্রি-অর্ডার ট্র্যাভেরসাল একটি পূর্ণ বাইনারি গাছের যাও recursively অনুসরণ হিসাবে সংজ্ঞায়িত করা হয়:
- নোড এন সহ একটি পাতার প্রাক-অর্ডার ট্রভারসালাল তালিকা [ এন ]।
- নোড এন এবং সাব-ট্রি (এল, আর) সমন্বিত একটি শাখার প্রাক-অর্ডার ট্র্যাভার্সাল হ'ল তালিকা [ এন ] + প্রিআর্ডার ( এল ) + প্রির্ডার ( আর ), যেখানে + তালিকা তালিকার অপারেটর।
উপরের গাছটির জন্য, এটি [,, ৩, ১, ৮, ২, ৯, ৪, ৫,]] ।
পোস্ট-অর্ডার ট্র্যাভেরসাল একটি পূর্ণ বাইনারি গাছের যাও recursively অনুসরণ হিসাবে সংজ্ঞায়িত করা হয়:
- নোড এন সহ একটি পাতার পোস্ট-অর্ডার ট্রভারসালাল তালিকা [ এন ]।
- নোড এন এবং সাব-ট্রি (এল, আর) সমন্বিত একটি শাখার পোস্ট-অর্ডার ট্র্যাভারসাল হ'ল তালিকা পোস্টর্ডার ( এল ) + পোস্টর্ডার ( আর ) + [ এন ]।
উপরের গাছের জন্য, এটি [1, 2, 9, 8, 3, 5, 7, 4, 6] ।
ইন-অর্ডার ট্র্যাভেরসাল একটি পূর্ণ বাইনারি গাছের যাও recursively অনুসরণ হিসাবে সংজ্ঞায়িত করা হয়:
- একটি ইন-অর্ডার ট্র্যাভেরসাল পাতার একটি নোড ধারণকারী এন তালিকা [হল এন ]।
- নোড এন এবং সাব-ট্রি (এল, আর) সমন্বিত একটি শাখার ইন-অর্ডার ট্র্যাভারসাল হ'ল তালিকার ইনঅর্ডার ( এল ) + [ এন ] + ইনঅর্ডার ( আর )।
উপরের গাছের জন্য, এটি [1, 3, 2, 8, 9, 6, 5, 4, 7] ।
উপসংহারে: তালিকার জুটি দেওয়া [,, ৩, ১, ৮, ২, ৯, ৪, ৫,]] (পূর্ব) এবং [১, ২, ৯, ৮, ৩, ৫,,, ৪,]] (পোস্ট) ইনপুট হিসাবে, আপনার প্রোগ্রামের আউটপুট হওয়া উচিত [1, 3, 2, 8, 9, 6, 5, 4, 7] ।
পরীক্ষার মামলা
প্রতিটি পরীক্ষার কেস ফরম্যাটে থাকে preorder, postorder → expected output
।
[8], [8] → [8]
[3,4,5], [4,5,3] → [4,3,5]
[1,2,9,8,3], [9,8,2,3,1] → [9,2,8,1,3]
[7,8,10,11,12,2,3,4,5], [11,12,10,2,8,4,5,3,7] → [11,10,12,8,2,7,4,3,5]
[1,2,3,4,5,6,7,8,9], [5,6,4,7,3,8,2,9,1] → [5,4,6,3,7,2,8,1,9]
"CDE" and "DEC" give "DCE"
? (এমনকি যদি আমাকে প্রচুর নোডের প্রয়োজন হয় তবে ইউনিকোড অক্ষর ব্যবহার করে)
"CDE"
থেকে খুব আলাদা নয় [67, 68, 69]
:)