Sabtu, 19 Juni 2010

source code infix to postfix

#include "stdio.h"

char stack[20];
char kar[20];
int top=-1;
char temp,xx;
int valid=1;

void push(char put)
{
stack[top+1]=put;
top++;
}
void pop()
{
temp=stack[top];
top--;
}

void main()
{
printf("Masukkan karakter infix:");
scanf("%s",&kar);

for(int i=0;i<20;i++)
{
if(kar[i]=='(')
{
push(kar[i]);
}else if(kar[i]==')')
{
pop();
xx='(';
if(xx!=temp)
{
valid=0;
break;
}
}
}
if(valid==1)
{
printf("\nkarakter postfix=");
for(int j=0;j<20;j++)
{
if(kar[j]=='(' || kar[j]=='+' || kar[j]=='-' || kar[j]=='*' || kar[j]=='/' || kar[j]=='^')
{
push(kar[j]);
}
else if(kar[j]==')')
{
while(stack[top]!='(')
{
pop();
printf("%c",temp);
}
pop();
}
else if(kar[j]<1)
{
while(top!=-1)
{
pop();
printf("%c",temp);
}
break;
}else
{
printf("%c",kar[j]);
}
}
}
else
{
printf("tdk valid");
}
printf("\n\n\n\n");
}

Tidak ada komentar:

Posting Komentar