PDA

View Full Version : از برنامه نویسان محترم خواهش میکنم به این سوال من پاسخ بدید



rtech
پنج شنبه 05 آذر 1383, 01:58 صبح
چجوری میشه در c یک عبارت infix را با استفاده از stack یا پشته به post fix تبدیل کرد لطفا من را راهنمایی کنید متشکرم

ramin_registry@yahoo.com

ramin_ahmadi@gmail.com

مهدی کرامتی
پنج شنبه 05 آذر 1383, 06:01 صبح
عنوان سوالتان را تصحیح کنید.

aakh1361
یک شنبه 08 آذر 1383, 02:36 صبح
بیشتر توضیح بده :گیج:

lionking_1360
سه شنبه 01 دی 1383, 12:34 عصر
سلام
من قبلا این برنامه رو برای استادمون نوشتم البته به دو صورت نوشتم ببین به دردت میخوره

#include <ctype.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define SIZE 21
class stack
{
public :
stack();
empty();
void push(int);
int pop(void);
int top() const;
private:
int item[SIZE];
int mytop;
};
inline stack :: stack() {mytop = -1;}
inline stack :: empty() {return mytop = -1;}
void stack :: push(int x)
{
if (mytop == SIZE)
printf("Stack is full\n");
else
item[mytop++] = x;
}
int stack :: pop(void)
{
if (mytop == -1) {
printf("Stack is empty\n");
exit(1);
return 0;
}
return item[--mytop];
}
int stack :: top() const { if(mytop >= 0) return item[mytop]; }
//************************************************** **********
/*--------------------------------------------------------------------------
void intopost(const char *infix, char *postfix)
{
int st;
stack s;
s.push('(');
while (*infix != '\0') {
if (isspace(*infix)) {
;
}
else if (isalpha(*infix)) {
*postfix++ = *infix;
}
else if (*infix == '(') {
s.push('(');
}
else if (*infix == ')') {
while ((st = s.pop()) != '(')
*postfix++ = st;
}
else if (*infix == '*' || *infix == '/') {
while (1) {
if ((st = s.pop()) == '(' || st == '+'
|| st == '-') {
s.push(st);
break;
}
*postfix++ = st;
}
s.push(*infix);
}
else if (*infix == '+' || *infix == '-') {
while (1) {
if ((st = s.pop()) == '(') {
s.push(st);
break;
}
*postfix++ = st;
}
s.push(*infix);
}
else {
printf("Unknown input character %c\n", *infix);
}
++infix;
continue;
}
while ((st = s.pop()) != '(')
*postfix++ = st;

*postfix = '\0';
}


به صورتهای دیگه هم می توان نوشت

Pars Giga
یک شنبه 15 خرداد 1384, 09:45 صبح
:تشویق:

sara_129
چهارشنبه 23 آبان 1386, 12:50 عصر
سلام
لطفآ برنامه کلاس تبدیل postfix به infix را برایم میل کنید البته این برنامه باید علاوه بر اعداد با حروف انگلیسیی هم جواب دهد و همچنین عبارت دارای پرانتز من به این برنامه نیاز فوری دارم لطفآ من را راهنمایی کنید23/8/86 متشکرم.