PDA

View Full Version : درخت



mina mehdizadeh
پنج شنبه 19 اردیبهشت 1387, 10:38 صبح
سلام.....سوال من در مورد ویرایش درخت هاست:عصبانی++:
اگر ویرایش پیشوندی و میانوندی یک درخت دودویی را داشته باشیم چطوری می تونیم برنامه ای بنویسیم که ویرایش پسوندیش را چاپ کنه ؟
(اگه میشه الگوریتم نوشتنش را برام توضیح بدید....ممنون )

mina mehdizadeh
پنج شنبه 19 اردیبهشت 1387, 15:04 عصر
منظورم از ویرایش همون پیمایش بود......!!!

mina mehdizadeh
جمعه 20 اردیبهشت 1387, 19:39 عصر
بابا اینجا چقدر آدمو تحویل می گیرند...... :گریه::گریه::گریه:
یعنی هیچ کسی نیست که سوالم رو جواب بده....؟؟؟؟؟

MRHagh
شنبه 21 اردیبهشت 1387, 20:54 عصر
فکر نمیکنم که الگوریتم خاصی برای یافتن مستقیم پیمایش Post-Order از روی پیمایشهای دیگر وجود داشته باشد . مگر آنکه از روی دو پیمایش ذکر شده درخت را بسازید و آنرا Post-Order پیمایش کنید.
البته این به این معنا نیست که که راه حل دیگری غیر از این ندارد . من مدتی روی این مسئله کار کردم ولی راحت تر از از این برای پیشنهاد به ذهنم نرسید .
موفق باشید ...

raven1997
سه شنبه 24 اردیبهشت 1387, 20:36 عصر
خب خب میبینم که تکلیف درس ++C دانشگاه صنعتی اصفهان رو نوشتی!
من می نویسم می ذارمش روی وب.

mina mehdizadeh
سه شنبه 24 اردیبهشت 1387, 23:02 عصر
ااااااااااااااااا.....چقدر زود لو رفتم :متفکر:
خودم یه چیزی نوشتم ولی خوب هنوز نفهمیدم چرا exceptiion میزنه .....ولی سعیم رو میکنم ......

mina mehdizadeh
جمعه 27 اردیبهشت 1387, 09:06 صبح
یافتم........درستش کردم....اما فکر کنم اگه بذارمش رو وب توسط Nima_NF پاک میشه....درسته ؟؟؟

Nima_NF
جمعه 27 اردیبهشت 1387, 14:56 عصر
برنامه را خودتان نوشتید و می توانید آن را ارائه کنید از این بابت مشکلی نیست.
فقط سعی کنید از ارسال های بی ارتباط با موضوع و یا فاقد محتوای علمی پرهیز کنید تا پاک نشوند.

موفق باشید

raven1997
شنبه 28 اردیبهشت 1387, 19:16 عصر
سلام من این کد را نوشتم که سوال بالا رو جواب بدم ولی در اینکه چه جوری متد maketree رو بنویسم مانده ام می خوام این متد از روی پیمایش preorder و inorder , درخت را بسازه .
خواهش میکنم کمک:گریه:
فقط و فقط مشکل من ساختن درخت است نه پیمایش اون.:عصبانی++:

mina mehdizadeh
شنبه 28 اردیبهشت 1387, 23:19 عصر
خوب اصلش هم همینه دیگه .....:قهقهه:
اینکه از روی preorder و inorder درخت رو بسازی و بعد اون رو با یه تابعه بازگشتی خیلی ساده پیمایش کنی و postorder رو چاپ کنی.....
الگوریتمی که من استفاده کردم اینه :
مثلا نود های میانوندی و پیشوندی رو توی یک رشته می ریزی
نود های توی آرایه پیشوندی رو یکی یکی می خونی و توی میانوندی مکانش رو پیدا
می کنی.....مسلما اولین نود توی پیشوندی می شه ریشه اصلی(اون رو می سازی )
میری سراغ نود بعدی و به همین ترتیب .....
توی آرایه میانوندی می گردی که این نود مورد بررسی بین کدوم دو تا نوده new شدس
(می تونی یه آرایه دیگه برای نود های new شده در نظر بگیری یا اینکه هر دفعه توی درخت search کنی )
اگه بین دو تا نود بود که قبلا ایجاد(new)شدن این بچه کسیه که آخر new شده (پس باید یه آرایه هم داشته باشی که نود های اجاد شده به ترتیب توی اون قرار می گیرند ) پس اندیسش رو توی میانوندی چک می کنی و اون رو در جای مناسبش (چپ یا راست )می ذاری....
اما اگه مثلا قبل یا بعد از یه نود new شده قرار داشت کارت آسون می شه فقط اندیسش رو چک می کنی و اون رو سره جاش می ذاری....
امیدوارم چیزی از این الگوریتم فهمیده باشید...... موفق باشید