دوست من ، من نمی گم ۱۴ تا گره بزرگتر از ۱۰۰۰ همزمان می تونه برگ باشه.
بلکه می گم گره هایی که می تونند توی این ماکس هیپ جزو برگ ها باشن فقط می تونن از بین گره های ۱ تا ۱۰۱۴ انتخاب بشن. یعنی فقط این گره ها می تونن برگ باشن.
حالا سوال خواسته از بین این گره ها مشخص کنیم چند تاشون از ۱۰۰۰ بزرگ ترن که از ۱۰۰۱ میشه تا ۱۰۱۴ دیگه.
توی سوال گفته کدوم گره ها می تونه برگ باشن(و تعداد برگ ها رو نخواسته)(تعداد گره های هر سطح میشه ۲ به توان (سطح منهای ۱)(دقت کنید که سطح ریشه حتما از ۱ شروع خواهد شد)
فقط گفته کدوم گره ها می تونن برگ باشن.
منم جواب دقیق رو دادم و صد در صدر جوابی که من دادم بر طبق سوالی که مطرح فرمودن درست هست.
اگه خوب دقت کنید و سوال رو بخونید می بینید جواب من از همه کامل تره.خواهش می کنم از همه ی دوستان تمام جواب های من رو خوب بخونید و عکسی که گذاشتم رو هم ببینید.
شما میاد ابتدا ۱۰۲۳ رو با ۱ جمع می کنید میشه ۱۰۲۴ حالا لگاریتمشو در مبنای ۲ می گیرید میشه ۱۰ پس ۱۰ سطح داریم حالا میاید از ۱۰۲۳ میشمارید تا سطح ۱۰ میشه :
چپ ترین گره سطح ۱: ۱۰۲۳
چپ ترین گره سطح ۲: ۱۰۲۲
چپ ترین گره سطح ۳: ۱۰۲۱
چپ ترین گره سطح ۴: ۱۰۲۰
چپ ترین گره سطح ۵: ۱۰۱۹
چپ ترین گره سطح ۶: ۱۰۱۸
چپ ترین گره سطح ۷: ۱۰۱۷
چپ ترین گره سطح ۸: ۱۰۱۶
چپ ترین گره سطح ۹: ۱۰۱۵
چپ ترین گره سطح ۱۰: ۱۰۱۴
----------------
![[تصویر: 1024BigLeaf.gif]](https://img.manesht.ir/1024BigLeaf.gif)
می فهمیم که بزرگترین برگ باید ۱۰۱۴ باشه.
پس گره های ۱ تا ۱۰۱۴ فقط می تونن برگ باشن.(نمی گم همه ی اینا همزمان_بلکه میگم بعضی از اینها می تونن با هم برگ باشن و فقط برگ ها باید از همین مجموعه باشه و عدد دیگه ای نخواهد بود)
------------
نکته :قانون داریم که ثابت شده گره های ۱ تا بزرگترین برگ می تونند توی ماکس هیپ برگ باشن.
اگه باور ندارید مثالی میزنم :
یه ماکس هیپ با ۱۵ گره رسم کنید(دقت کنید که طبق این سوال تعداد گره های ماکس هیپمون باید توانی از ۲ منهای یک باشه مثل ۲ به توان ۴ منهای ۱ که میشه ۱۶-۱=۱۵ )
حالا ۱۵+۱ میشه ۱۶ از ۱۶ لگاریتم می گیریم میشه ۴ سطح.
حالا میاید از ۱۵میشمارید تا سطح ۴میشه :
چپ ترین گره سطح ۱: ۱۵
چپ ترین گره سطح ۲: ۱۴
چپ ترین گره سطح ۳: ۱۳
چپ ترین گره سطح ۴: ۱۲
-----
می فهمیم که بزرگترین برگ باید ۱۲باشه.
پس گره های ۱ تا ۱۲ فقط می تونن برگ باشن
همچنین در سطح آخر باید ۲ به توان(۴-۱) گره یا ۸ گره داشته باشیم.
این ۸ برگ فقط باید از توی اعداد ۱ تا ۱۲ انتخاب بشن تا درختمون maxHeap باشه(یعنی هر گره از فرزندانش بزرگتر باشه)
اثباتشم توی سه مدل شکل دیگه نشون میدم(تورو خدا قبول کنید حرفام درسته خسته شدم از دستتون):
![[تصویر: 16_maxHeap.gif]](https://img.manesht.ir/16_maxHeap.gif)
همونطور که معلومه گره های ۱ تا ۱۲ باید برگ باشن و ۱۳و۱۴و۱۵ نمی تونن.
هرجورم جابجایی میخواید انجام بدید به شرطی که هرگره از فرزنداش بزرگتر باشه.