Need to solve this writing a C PROGRAM. 
![\[
6+9 / 3 * 6-4=20
\]
Do you want to enter another expresgion \( (Y / N) \) ? ? Do yogram complece.
Notes:
- Design your pro](https://media.cheggcdn.com/media/ffc/ffc52e54-3bf6-46ff-b2b1-7d3308f38b8d/php7oAfLT)
Given an expression, write a C program that will utilize two stacks, implemented with linked lists, to evaluate the expression. Use the following rules to evaluate the expression. You will use one stack for operands and another stack to maintain the operators. - When an operand (number) is read, it is pushed onto the operand stack. - When a left parenthesis is read, it is pushed onto the operator stack. - When one of the five operators \( (+,-,, 1, \%) \) is read, it is pushed onto the stack if it has a higher precedence than the operator on the top of the stack. Otherwise, an evaluation step takes place. - Pop two operands from the operand stack and pop the top operator from the operator stack. - Perform the operation. (second popped operand first popped operand) - Push the result back onto the operand stack. - When one of the five operators \( (+,-, *, 1, \%) \) is read, and it has equal precedence with the operator on the top of the stack, an evaluation step takes place. Pop two operands from the operand stack and pop the top operator from the operator stack. - Perform the operation. (second popped operand first popped operand) - Push the result back onto the operand stack. - Push the new operator onto the operator stack. - When a right parenthesis is read, an evaluation step takes place. Pop two operands from the operand stack and pop the top operator from the operator stack. - Perform the operation. (second popped operand first popped operand) - Push the result back onto the operand stack. Repeat this process until a left parenthesis is found on the top of the operator stack. Once you find a left parenthesis, pop it off the operator stack. To assist with input, you may assume only one digit positive numbers. You may also assume correct expressions. Display the two stacks before \& after each evaluation step is completed.
\[ 6+9 / 3 * 6-4=20 \] Do you want to enter another expresgion \( (Y / N) \) ? ? Do yogram complece. Notes: - Design your program using functions. The main() function should reflect an outline of how the program works with details in the supporting functions. - use linked lists to implement the two stacks - create a Node using a struct use typedef to rename your structure - use at least 3 functions (excluding main), make sure to comment each function - use an array of 50 characters to hold the expression (Use #define to define the size of the array) - Using scanf() to fill a character array with a C-string can be a bit dangerous! What if the string is longer than the size of the array? Consider using fgets (): #nclude \( \langle s \) tdio. h \( \rangle \) to read a line of input and store in a C-String (character array) use char * fgets ( char * str, int num, FILE * stream ); More information can be found at: wuw.cplusplus.com/reference/cstdio/fgets