setare55
07-06-2007, 13:21
سلام خواهش می کنم یک برنامه ارزیابی عبارات پسوندی وپیشوندی وهمچنین تبدیل عبارات پسوندی را هر کیداره برام بفرسته:11:
سلام
این یه برنامه هستش که عبارت infiX رو به postfiX تبدیل میکنه
#include<iostream.h>
#include<conio.h>
#include<string.h>
#include <stdio.h>
#include <dos.h>
#include <alloc.h>
int push(char stack[],char ch,int &top)
**
if(top==20)
return 0;
else
stack[top++]=ch;
}
int pop(char *stack,int &top)
**
if(top==0)
return 0;
else
return stack[--top];
}
void convert(int num,char inf[],int pos)
**
char opr[]="+-*/()";
for(int i=pos;i<strlen(inf);i++)
**
if(!(strchr(opr,inf[i])))
num=num*10+inf[i]-48;
else
break;
}
}
void main()
**
cout<<" \\|||/ "<<endl;
cout<<" (o o) "<<endl;
cout<<"---ooO(_)Ooo--- HaW3D"<<endl<<endl;
char stack[21],inf[20],opr[]="+-*/)";
int top=0;
int num1=0,num2=0;
char aml;
printf("Enter an infix statument :");
scanf("%s",inf);
convert(num1,inf,0);
printf("%d\n",num1);
for(int i=0;i<strlen(inf);i++)
**
if(inf[i]!='(')
if(!(strchr(opr,inf[i])))
printf("%c",inf[i]);
else if((inf[i]!=')'))
push(stack,inf[i],top);
else
printf("%c",pop(stack,top));
}
for(i=top;i>0;i--)
**
printf("%c",pop(stack,top));
}
}
برای تبدیل به prefiX هم تقریبا همون روشه
برای پیدا کردن جوابش یه الگوریتم پیدا کرده بودم که انشا ا... بعدا میگم(یعنی الان خاطرم نیست)
salman_mazidi
21-06-2007, 17:37
سلام براي ديدن برنامه اي كه ميخواي به كتاب ساختمان داده ها در C++نوشته جعفرنژاد قمي صفحه78 مراجعه كن
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.