سلام.....سوال من در مورد ویرایش درخت هاست
اگر ویرایش پیشوندی و میانوندی یک درخت دودویی را داشته باشیم چطوری می تونیم برنامه ای بنویسیم که ویرایش پسوندیش را چاپ کنه ؟
(اگه میشه الگوریتم نوشتنش را برام توضیح بدید....ممنون )
سلام.....سوال من در مورد ویرایش درخت هاست
اگر ویرایش پیشوندی و میانوندی یک درخت دودویی را داشته باشیم چطوری می تونیم برنامه ای بنویسیم که ویرایش پسوندیش را چاپ کنه ؟
(اگه میشه الگوریتم نوشتنش را برام توضیح بدید....ممنون )
منظورم از ویرایش همون پیمایش بود......!!!
بابا اینجا چقدر آدمو تحویل می گیرند......
یعنی هیچ کسی نیست که سوالم رو جواب بده....؟؟؟؟؟
فکر نمیکنم که الگوریتم خاصی برای یافتن مستقیم پیمایش Post-Order از روی پیمایشهای دیگر وجود داشته باشد . مگر آنکه از روی دو پیمایش ذکر شده درخت را بسازید و آنرا Post-Order پیمایش کنید.
البته این به این معنا نیست که که راه حل دیگری غیر از این ندارد . من مدتی روی این مسئله کار کردم ولی راحت تر از از این برای پیشنهاد به ذهنم نرسید .
موفق باشید ...
خب خب میبینم که تکلیف درس ++C دانشگاه صنعتی اصفهان رو نوشتی!
من می نویسم می ذارمش روی وب.
ااااااااااااااااا.....چقدر زود لو رفتم
خودم یه چیزی نوشتم ولی خوب هنوز نفهمیدم چرا exceptiion میزنه .....ولی سعیم رو میکنم ......
یافتم........درستش کردم....اما فکر کنم اگه بذارمش رو وب توسط Nima_NF پاک میشه....درسته ؟؟؟
برنامه را خودتان نوشتید و می توانید آن را ارائه کنید از این بابت مشکلی نیست.
فقط سعی کنید از ارسال های بی ارتباط با موضوع و یا فاقد محتوای علمی پرهیز کنید تا پاک نشوند.
موفق باشید
سلام من این کد را نوشتم که سوال بالا رو جواب بدم ولی در اینکه چه جوری متد maketree رو بنویسم مانده ام می خوام این متد از روی پیمایش preorder و inorder , درخت را بسازه .
خواهش میکنم کمک
فقط و فقط مشکل من ساختن درخت است نه پیمایش اون.
خوب اصلش هم همینه دیگه .....
اینکه از روی preorder و inorder درخت رو بسازی و بعد اون رو با یه تابعه بازگشتی خیلی ساده پیمایش کنی و postorder رو چاپ کنی.....
الگوریتمی که من استفاده کردم اینه :
مثلا نود های میانوندی و پیشوندی رو توی یک رشته می ریزی
نود های توی آرایه پیشوندی رو یکی یکی می خونی و توی میانوندی مکانش رو پیدا
می کنی.....مسلما اولین نود توی پیشوندی می شه ریشه اصلی(اون رو می سازی )
میری سراغ نود بعدی و به همین ترتیب .....
توی آرایه میانوندی می گردی که این نود مورد بررسی بین کدوم دو تا نوده new شدس
(می تونی یه آرایه دیگه برای نود های new شده در نظر بگیری یا اینکه هر دفعه توی درخت search کنی )
اگه بین دو تا نود بود که قبلا ایجاد(new)شدن این بچه کسیه که آخر new شده (پس باید یه آرایه هم داشته باشی که نود های اجاد شده به ترتیب توی اون قرار می گیرند ) پس اندیسش رو توی میانوندی چک می کنی و اون رو در جای مناسبش (چپ یا راست )می ذاری....
اما اگه مثلا قبل یا بعد از یه نود new شده قرار داشت کارت آسون می شه فقط اندیسش رو چک می کنی و اون رو سره جاش می ذاری....
امیدوارم چیزی از این الگوریتم فهمیده باشید...... موفق باشید