my polish

#include "stdafx.h" #include <stdio.h> #include <math.h> #include <conio.h> struct stack // стек знаков { char sign; stack *next; }; stack *insert(stack *&p, char a) //вставка в стек { stack *q; q->sign = a; q->next = p; p = q; return p; } int get_last(stack *&p) //взятие из стека, удаление { char a; a = p->sign; p = p->next; return a; } int prior(char x) //определяет приоритет операции { if (x == '(') return 0; if (x == '+' || x == '-') return 1; if (x == '*' || x == '/') return 2; return 3; } void main() { char ent, x; stack *p = NULL; printf("enter your infix expression:\n"); do { scanf("%c", &ent); if (prior(ent) == 3) //если это число printf("%c", ent); if (ent == '(') insert(p, ent); if (ent == ')') { while (p->sign != '(') { x = get_last(p); printf("%c", x); } p = p->next; } if (prior(ent) <= prior(p->sign)) { x = get_last(p); printf("%c", x); } } while (ent != '\0'); getch(); } /**/

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.