m.@.@.i
سه شنبه 15 دی 1388, 01:26 صبح
در مورد زیر کمی راهنمایی می خواستم:
من برنامه تبدیل عبارت پسوندی به میانوندی را در C برای حالتی که عبارت ورودی ما شامل عدد و عملگر باشد نوشته ام مثلا: /+12*3+41
این برنامه خروجی را به صورت حاصل عبارت نشان می دهد که در اینجا برابر 5 میشود.
بدین صورت که در هر مرحله اعداد را در stack میریزد و با push و pop های متعدد این کار را انجام میدهد.
حالا اگر بخواهم عبارت ورودی فقط شامل عملگر و کاراکتر باشد مثلا : /*AB+CA
که جواب به صورت مقابل چاپ شود: A+B/C*A
این کار را چطور انجام دهم .مثلا در ابتدا که A در stack ریخته می شود ، بعد B ، بعد که علامت + را میبیند A و B را با هم جمع میکند. حالا چطور عبارت A+B را دوباره به stack برگرداند http://www.iran-eng.com/images/smilies/a063.gifhttp://www.iran-eng.com/images/smilies/a063.gifhttp://www.iran-eng.com/images/smilies/a063.gifhttp://www.iran-eng.com/images/smilies/a063.gif
من برنامه تبدیل عبارت پسوندی به میانوندی را در C برای حالتی که عبارت ورودی ما شامل عدد و عملگر باشد نوشته ام مثلا: /+12*3+41
این برنامه خروجی را به صورت حاصل عبارت نشان می دهد که در اینجا برابر 5 میشود.
بدین صورت که در هر مرحله اعداد را در stack میریزد و با push و pop های متعدد این کار را انجام میدهد.
حالا اگر بخواهم عبارت ورودی فقط شامل عملگر و کاراکتر باشد مثلا : /*AB+CA
که جواب به صورت مقابل چاپ شود: A+B/C*A
این کار را چطور انجام دهم .مثلا در ابتدا که A در stack ریخته می شود ، بعد B ، بعد که علامت + را میبیند A و B را با هم جمع میکند. حالا چطور عبارت A+B را دوباره به stack برگرداند http://www.iran-eng.com/images/smilies/a063.gifhttp://www.iran-eng.com/images/smilies/a063.gifhttp://www.iran-eng.com/images/smilies/a063.gifhttp://www.iran-eng.com/images/smilies/a063.gif