PDA

View Full Version : سوال: نمایش درخت دودویی با استفاده از پیمایشها



peekneek
جمعه 24 اردیبهشت 1389, 23:11 عصر
با سلام.
من می خوام برنامه نمایش درخت دودویی را با استفاده از پیمایشهای inorder و postorder بنویسم از شما خواهشمندم تنها الگوریتم نوشتن این برنامه را به من بگویید با ذکر این نکته که دو پیمایش اولیه در دو آرایه باشد و برنامه درخت بدست آمده را در آرایه سوم قزاز دهد.
متشکرم.

saber187518
شنبه 25 اردیبهشت 1389, 00:28 صبح
سلام دوست عزیز
به این نکته توجه کن که وقتی یک درخت رو در یک آرایه ذخیره می کنیم. همیشه اگر گره پدر در خانه n باشد، (و درخت ما دودویی کامل باشد)آنگاه گره فرزند چپ در خانه N*2 آرایه قرار میگیرد و فرزند سمت راست او در خانه (N*2)+1 قرار دارد. با دانستن این دو نکته و تعریف inorder و یا preorder خیلی راحت میتوان پیاده سازی انجام داد.

giootin_tiz
شنبه 25 اردیبهشت 1389, 00:31 صبح
اینارو نوشتم به دردت میخوره؟48983

peekneek
شنبه 25 اردیبهشت 1389, 12:18 عصر
با تشکر از شما صابر عزیز.
توضیح مفیدی بود ولی در صورت امکان اگر یک شمای کلی از نحوه نوشتن یا الگوریتم آن را بدهید تا بدانم برنامه را چطور شروع کنم و با چه اسلوب خاص ادامه بدم ممنون میشم.
با تشکر.

saber187518
یک شنبه 26 اردیبهشت 1389, 00:35 صبح
با سلام
گاگ به گام جلو میرمو
1)عمق رو داشته باشی. یعنی که بدونی چند سطح از درخت رو قراره نمایش بدی. n
2)تعداد کل گره های درخت میشه 2 به توان n.که معادل تعداد خونه های آرایه هست.
3)شمارنده حلقه باید از 1 تا 2 به توان n-1 پیش بره.
و در هر بار تکرار حلقه میتونی با توجه به نکته ای که بالا تر گفتم جایگذاری هارو بدست بیاری.
اگه کد خواستی بگو. برات بذارم.
راستی اگه میبینی که الان کد نذاشتم میخوام یکم در موردش فکر کنی.
موفق باشی.