আমার জাভা ক্লাসে, আমরা বিভিন্ন ধরণের সংগ্রহের জটিলতা সম্পর্কে শিখছি।
শীঘ্রই আমরা বাইনারি গাছগুলি নিয়ে আলোচনা করব, যা আমি পড়ছি। বইটিতে বলা হয়েছে যে বাইনারি গাছের সর্বনিম্ন উচ্চতা, তবে আরও ব্যাখ্যা দেয় না।
কেউ ব্যাখ্যা করতে পারেন কেন?
আমার জাভা ক্লাসে, আমরা বিভিন্ন ধরণের সংগ্রহের জটিলতা সম্পর্কে শিখছি।
শীঘ্রই আমরা বাইনারি গাছগুলি নিয়ে আলোচনা করব, যা আমি পড়ছি। বইটিতে বলা হয়েছে যে বাইনারি গাছের সর্বনিম্ন উচ্চতা, তবে আরও ব্যাখ্যা দেয় না।
কেউ ব্যাখ্যা করতে পারেন কেন?
উত্তর:
একটি বাইনারি গাছের পাতাগুলিবিহীন নোডে 1 বা 2 এবং পাতার নোডে 0 টি নোড থাকে। হতে দিন একটি গাছের নোড এবং আমাদের সেগুলি এমনভাবে সাজিয়ে তুলতে হবে যাতে তারা এখনও একটি বৈধ বাইনারি গাছ গঠন করে।
প্রমাণ ছাড়াই, আমি উল্লেখ করছি যে উচ্চতা সর্বাধিক করার জন্য প্রদত্ত নোডগুলি রৈখিকভাবে সাজানো উচিত, অর্থাত প্রতিটি নন-পাতার নোডের কেবল একটি শিশু হওয়া উচিত:
O 1
|
O 2
|
O 3
|
O 4
|
O 5
|
O 6
|
O 7
|
O 8
এখানে নোডের সংখ্যার দিক দিয়ে উচ্চতার সম্পর্কের গণনা করার সূত্রটি সোজা-ফরোয়ার্ড। যদি তাহলে গাছের উচ্চতা ।
এখন, আমরা যদি একটি বাইনারি গাছ নির্মাণের চেষ্টা করি ন্যূনতম উচ্চতাযুক্ত নোডগুলি (সর্বদা সম্পূর্ণ বাইনারি গাছের কাছে হ্রাসযোগ্য), পরবর্তী স্তরে যাওয়ার আগে আমাদের উপরের স্তরে যতগুলি সম্ভব নোড প্যাক করতে হবে। সুতরাং, গাছ নিম্নলিখিত গাছের রূপ নেয়:
O
|1
|
O------+-----O
|2 |3
| |
O---+---O O---+----O
|4 |5 6 7
| |
O---+--O O
8 9 10
আসুন একটি নির্দিষ্ট কেস দিয়ে শুরু করি, ।
আমরা জানি যে,
এছাড়াও, এটি প্রমাণ করা সহজ, একটি স্তর সর্বাধিক থাকতে পারে এটি নোড।
উপরের যোগফলে এই ফলাফলটি ব্যবহার করে আমরা এটি প্রতিটি স্তরের জন্য খুঁজে পাই থেকে, থেকে প্রতি , একটি সম্পর্কিত শব্দ বিদ্যমান এর প্রসারণে । এটি বোঝায়, এটি একটি সম্পূর্ণ বাইনারি গাছ নোডগুলি সম্পূর্ণরূপে পূর্ণ এবং উচ্চতা রয়েছে, , কোথায় সাথে একটি সম্পূর্ণ বাইনারি গাছের উচ্চতা নোড।
এই ফলাফলটি ব্যবহার করে, , গাছের সাথে নোডগুলি পুরোপুরি ভরাট এবং এর সাথে একটি গাছ tree নোডগুলিকে পরবর্তী স্তরে অতিরিক্ত নোড সমন্বিত করতে হয় , উচ্চতা 1 থেকে বৃদ্ধি প্রতি ।
এখন অবধি আমরা প্রমাণ করেছি,
সুতরাং,
তবে, উভয় পক্ষের লগ (বেস 2) নেওয়া,
সুতরাং,
এবং আমরা এই ফলাফলটি সাধারণীকরণ করতে পারি আনয়ন ব্যবহার
পিএস: একটি সম্পূর্ণ বাইনারি গাছের উচ্চতার উল্লেখ করে এমন বই সবার জন্য বৈধ নয় কারণ বেশিরভাগ পূর্ণসংখ্যার জন্য অ-অবিচ্ছেদ্য মান দেয় (অর্থাত্ নিখুঁত বাইনারি গাছগুলির জন্য সকলের জন্য), তবে গাছের উচ্চতা নিখুঁতভাবে অবিচ্ছেদ্য।
আমি এটা ধরে নিচ্ছি , আপনি বাইনারি গাছের মোট নোডের অর্থ। বাইনারি গাছের উচ্চতা (বা গভীরতা) হ'ল মূল নোড (পিতামহীন নোড) থেকে গভীর পাতার নোডের পথের দৈর্ঘ্য। এই উচ্চতা সর্বনিম্ন করার জন্য, গাছটি সর্বাধিক পরিপূর্ণভাবে স্যাচুরেটেড হয় (শেষ স্তর বাদে) অর্থাত্ যদি নির্দিষ্ট স্তরের বাচ্চাদের সাথে নোড থাকে, তবে প্যারেন্ট টায়ারের সমস্ত নোডের অবশ্যই দুটি বাচ্চা থাকতে হবে।
সুতরাং একটি সম্পূর্ণ স্যাচুরেটেড বাইনারি গাছ স্তর আছে সর্বাধিক নোড এবং এর গভীরতা থাকবে । সুতরাং যদি আমাদের কাছে বাইনারি গাছের গভীরতা থাকে তবে আমরা খুব সহজেই সর্বাধিক সংখ্যক নোডগুলি খুঁজে পাই (যা গাছ পুরোপুরি স্যাচুরেটেড হওয়ার পরে ঘটে)। যদি আপনি আপনার বীজগণিত শ্রেণি থেকে প্রত্যাহার করেন এটি কেবল একটি জ্যামিতিক সিরিজ এবং সুতরাং এটির মতো উপস্থাপন করা যেতে পারে:
সুতরাং আসুন পুনরায় সাজানো:
উচ্চতা সর্বনিম্ন রাখতে, এটি দেখতে সহজ যে আমাদের সম্ভবত শেষটি বাদে সমস্ত স্তর পূরণ করতে হবে। কেন? অন্যথায়, আমরা কেবলমাত্র শেষ স্তরের নোডগুলি উপরের স্তরের খালি স্লটে সরিয়ে নিতে পারি।
এখন, কল্পনা করুন যে আমার কাছে কিছু অনির্দিষ্ট শিম রয়েছে এবং আমি আপনাকে একবারে একটি শিম দিচ্ছি এবং আপনাকে ন্যূনতম উচ্চতার সাথে বাইনারি গাছ বানাতে বলব। আপনি শেষ স্তরটি সম্পূর্ণরূপে পূরণ করেছেন বা কমপক্ষে সর্বশেষ স্তরে একটি শিম পেয়ে যাবেন এমন সময়ের মধ্যে আমি মটরশুটিগুলি চালিয়ে যেতে পারি। আসুন বলছি, আপনি আপনার গাছ উচ্চতা আছে জ এই সময়ে।
উভয় ক্ষেত্রেই এইচ পরিবর্তন হয় না। সুতরাং যার অর্থ আপনার প্রতিবন্ধকতা সহ উচ্চতা h এর সম্পূর্ণ বাইনারি গাছ রয়েছে । তবে আমি গত স্তরে কল্পিত মটরশুটি ধরেছি (যদি আপনি শেষ স্তরটি পূরণ করতে না পারেন)। সুতরাং এটি আসলে,