다음과 같은 계산 식이 있다.
위와 같은 계산식을 Linked List를 이용하여 입력 한 뒤, 계산하시오.
단, 각 숫자는 20 이하이다.
struct calc{
int num;
char oper;
struct calc* next;
};
typedef struct calc calc;
typedef calc *calcPtr;
값을 대입하는 insert함수는 다음과 같다.
void insert(calcPtr sPtr, int val, char op);
해를 구하는 solve함수는 다음과 같다.
main함수의 구조는 다음과 같다.
int main()
{
calcPtr head = (calcPtr)malloc(sizeof(calc));
head->next = NULL;
char a[100];
gets(a);
//삽입하는 부분
printf("%d", solve(head));
}
계산은 int형으로만 진행된다. (ex) 3/2 = 1)
연산자 우선순위는 (곱셈, 나눗셈), (덧셈, 뺄셈)순서이다. (괄호는 없다)
위 계산은 다음과 같이 진행되어야 한다.
5 + 10 - 7 * 3 / 2
5 + 10 - 21 / 2
5 + 10 - 10
15 - 10
5
예시답안
Comments