تابعی به نام Infix2Postfix1 تعریف شده است:
- این تابع یک رشته (* char) به عنوان ورودی میگیرد. (رشته با نویسهی تهی '0\' پایان میپذیرد.)
- رشتهی ورودی این تابع یک عبارت میانوندی میباشد. (قالب عبارت میانوندی در ادامه آمده است.)
- این تابع یک رشته (* char) بازمیگرداند. رشته بایستی با نویسهی تهی '0\' پایان پذیرد.
- این تابع با استفاده از ساختمان دادهی پشته، عبارت میانوندی ورودی خود را به عبارت پسوندی تبدیل کرده و به عنوان خروجی بازمیگرداند.
(قالب عبارت پسوندی در ادامه آمده است.)
تابع مرحلهی قبل (Infix2Postfix1) به گونهای تغییر کرده است که:
- خروجی تابع float میباشد.
- تابع به جای تبدیل عبارت میانوندی به پسوندی؛ حاصل آن را بازمیگرداند
- نام تابع را به Infix2Postfix2 تغییر یافته است.
قالب عبارت میانوندی:
عبارت میانوندی شامل عملوند و عملگر و پرانتز باز '(' و بسته ')' میباشد. عملوندها به صورت اعداد اعشاری (ارقام ۱ تا ۹ و علامت ممیز (.)) و عملگرها شامل جمع (+)، تفریق (-)، ضرب (*)، تقسیم (/) و توان (^) میباشند. بین عملوندها، عملگرها و پرانتزها هیچ نویسهای (مانند فاصله) وجود ندارد.
قالب عبارت پسوندی:
عبارت پسوندی شامل عملوند و عملگر (با قالبی مانند عبارت میانوندی) میباشد. عملگرها و عملوندها با نویسهی فاصله (' ') جدا میشوند.
- حافظههای ایجاد شده در پایان برنامه آزاد می شوند.
سورس تبدیل عبارت میانوندی به پسوندی (++C)