PDA

نسخه کامل مشاهده نسخه کامل : تبدیل عبارت میانوندی به پسوندی



shokoufeye anar
05-11-2009, 19:23
سلام
من به یه برنامه احتیاج دارم با c ++
برنامه نویسی خودم افتضاحه ممنون میشم کمکم کنید
الگوریتمشم میگم واسه دوستایی که احتمالا ( یادشون رفته)
1- ایجاد یک پشته خالی
2-عبارت رو از چپ به راست بخونه و تا زمانیکه به انتهای عبارت بعدی نرسیده اعمال زیر رو انجام بده:
الف)نشانه بعدی(ثابت،متغیر،عملگر،پرا تز باز و بسته) را از عبارت میانوندی دریافت کن
ب) اگر نشانه :
* پرانتز باز است آن را در پشته قرار بده
* عملوند است آن را در خروجی بنویسد
*عملگر است. اگر تقدم این عملگر از تقدم بالای پشته بیشتر باشد آن را در پشته قرار بده
وگرنه عضو بالای پشته رو حذف کنه و در هروجی بنویسه
حالا این عملگر ورودی رو با عملگر جدید موجود در بالای پشته مقایسه کنه و عمل را اونقدر ادامه بده تا پشته خالی شه یا تقدم عملگر موجود در پشته کمتر از آن عملگر بشه در این صورت اون رو در پشته قرار بده
* پرانتز بسته است.آنگاه عملگرهای بالای پشته رو pop کرده و در خروجی بنویسه تا وقتی به پرانتز باز برسه اونو pop کنه اما تو خروجی ننویسه
3-وقتی یه انتهای عبارت رسید عناصر موجود در پشته رو حذف کنه و در خروجی بنویسه تا پشته خالی شه
وااااااای چقدر طولانی شد.
من منتظر می مونم
اما زیاد منو منتظر نذارید
ممنون