#include
#include
char expr[50];
int top = -1;
void intro()
{
printf(“Infix to Postfix Converter Program\n”);
printf(“==================================\n\n”);
printf(“Kelompok :\n\n1. REINARD PANGESTU – 1701292115\n”);
printf(“2. ALVIN SATYAWAN – 1701291850\n”);
printf(“3. WIENA MARCELINA – 1701291516\n”);
printf(“4. DANIEL DAVID – 1701291610\n”);
printf(“5. DEVIANI – 1701292600”);
printf(“\n\n”);
}
void push(char elem) { /* Fungsi memasukan elemen ke dalam stack */
expr[++top] = elem;
}
char pop() { /* Fungsi mengeluarkan isi stack */
return (expr[top–]);
}
int prior(char elem) { /* Fungsi prioritas */
switch (elem)
{
case ‘#’:
return 0;
case ‘(‘:
return 1;
case ‘+’:
case ‘-‘:
return 2;
case ‘*’:
case ‘/’:
return 3;
}
}
void main()
{
intro();
char infix[50], pofx[50], ch, elem;
int i = 0, j = 0;
printf(“\nInput your Infix Expression : “);
scanf(“%s”, infix);
push(‘#’);
while ((ch = infix[i++]) != NULL)
{
if (ch == ‘(‘)
push(ch);
else if (isalnum(ch))
pofx[j++] = ch;
else if (ch == ‘)’)
{
while (expr[top] != ‘(‘)
pofx[j++] = pop();
elem = pop(); /* Mengeluarkan tanda buka kurung */
}
else {
while (prior(expr[top]) >= prior(ch))
pofx[j++] = pop();
push(ch);
}
}
while (expr[top] != ‘#’) /* Mengosongkan stack */
pofx[j++] = pop();
pofx[j] = NULL;
printf(“\n\nInfix Expression : %s \n\nPostfix Expression is : %s\n”, infix, pofx);
getchar();
getchar();
}
Recent Comments