درووود الگوریتمی میخوام که یک آرایه که مثلا 9 عنصری مرتب رو به یک درخت دودویی پر تبدیل کنم.اینجا مطرح کردم چون فکر کنم بیشتر سر و کار داشته باشید روش کار میخوام نه برنامه
Printable View
درووود الگوریتمی میخوام که یک آرایه که مثلا 9 عنصری مرتب رو به یک درخت دودویی پر تبدیل کنم.اینجا مطرح کردم چون فکر کنم بیشتر سر و کار داشته باشید روش کار میخوام نه برنامه
سلام
امکان داره یک مثال خودتون برام در ارایه بزنید؟
یک ارایه مرتب بخواهیم درخت دودویی پر بکنیمش
واسه این کار باید دو مرحله طی بشهنقل قول:
1.تعریف یک ساختار که قابلیت این رو داشته باشه که درخت رو پیاده سازی کنه
ساختار درخت تشکیل شده از یک سری گره که هر گره یک مقدار داره و دوتا زیرشاخه. یکی سمت راستی و یکی سمت چپی
هر زیرشاخه هم یک گره هست که ممکنه خودش زیرگره داشته باشه
این مرحله نسبتا راحته
2.تعریف یک تابع که آرایه رو بخونه و به برای درخت زیرشاخه درست کنه و مقادیر آرایه رو به گره ها اختصاص بده
در ابتدا یگ کره تشکیل می شه که شامل عنصر وسط از آرایه مورد نظره
دو تا گرهی که زیرشاخه این گره خواهند شد یکی از عناصر سمت راست عنصر وسطی و دیگری از عناصر سمت چپ عناصر وسطی انتخاب می شن
ازبین عناصر سمت راستی دوباره عنصر وسطی اون بعنوان گره انتخاب میشه وازبین عناصر سمت چپی دوباره عنصر وسطی اون بعنوان گره انتخاب میشه و همین طور این روند ادامه پیدا می کنه تا تمام عناصر آرایه به گره های درخت اختصاص داده بشن
تابع سازنده درخت بصورت بازگشتی کار می کنه و هر دفعه خودش رو صدا می زنه تا برسه به انتهای درخت
تصاویر پیوستی می تونه بهتر نشون بده . به ترتیب نگاه کنید:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]