ايران ويج

نسخه‌ي كامل: راهنمایی در مورد الگوریتم تبدیل عبارت infix به prefix
شما هم اكنون متن قالب بندي نشده را مي‌بينيد.مشاهده‌ي نسخه‌ي اصلي
سلام دوستان.
به برنامه یا الگوریتم تبدیل عبارت میانوندی به پیشوندی نیاز داشتم ، اگر کسی بلده و براش ممکنه برام لود کنه.
مرسی.
دوست من سلام

این بحث قبلا توی فروم شده بود . شما میتونید به لینک زیر مراجعه کنید :

http://forum.iranled.com/showthread.php?tid=2672
سلام دوستان
یه سوال داشتم.
ممنون میشم کمکم کنید.
یک پشته خالی با اعداد از 1 تا 6 از ورودی داده شده است.با اعمال pop ,push کدام یک از گزینه های زیر را نمی توان با هیچ ترتیبی از اعمال فوق به دست آورد؟
a)123564 b)324651
c)432165 d)215346
pop وpushرا تعریف کن.
گزینه d رو با هیچ ترتیبی نمیشه بدست آورد . برای اینکه بتونیم این گزینه رو هم در بیاریم باید جای ارقام 3 و 4 رو باهم عوض کنیم یا در واقع داشته باشیم 215436 . حالا علت کجاست ؟؟ من ترتیب اعمال رو مینویسم و شما خودتون متوجه خواهید شد چرا . برای ایجاد جواب 215346 مراحل زیر رو قدم به قدم انجام میدیم :

ابتدا 1 رو باید توی پشته قرار بدیم ( 1 پس توی پشته هست )
2 رو مستقیما به جواب اضافه میکنیم ( جواب ما تا اینجا 2 هست )
1 رو از پشته pop میکنیم و به جواب اضافه میکنیم ( جواب بدست آمده تا اینجا 21 هست و پشته خالیه )
3 رو باید توی پشته قرار بدیم ( 3 پس توی پشته هست و پایین ترین عضو پشته )
4 رو باید توی پشته قرار بدیم ( 4 3 توی پشته هستند و 4 بالاترین هست)
5 رو مستقیما به جواب اضافه میکنیم ( جواب ما تا اینجا 215 هست )
حالا توی این مرحله باید طوری عمل کنیم که 3 توی جواب ما قرار بگیره تا درواقع بتونیم 2153 رو تشکیل بدیم اما 3 در پایین پشته قرار داره و چون عضو بالایی پشته نیست تمیتونیم از پشته خارجش کنیم در نتیجه هیچ راهی نیست که بشه 3 رو خارج کنیم و 215246 رو بسازیم .

خاصیت LIFO بودن پشته به ما این امکان رو نمیده . حالا فقط کافیه جای ارقام 3 و 4 رو توی گزینه عوش کنی . خیلی راحت جواب 215436 رو میتونی بدست بیاری !
ممنون خیلی مطلبت بخصوص در مورد عبارات پسوندی و میانوندی جالب بود.
تا باشه از این بحث های جالب باشه.
salam
shoma barname infix be postfix ro goftid age momkene infix be prefix ro ham begid.mer30
آدرس اصلي