Infix to Prefix Conversion: Algorithm and Examples

Rumman Ansari   Software Engineer   2024-07-05 06:05:06   6682  Share
Subject Syllabus DetailsSubject Details
☰ TContent
☰Fullscreen

Algorithm of Infix to Prefix

Step 1. Push “)” onto STACK, and add “(“ to end of the A

Step 2. Scan A from right to left and repeat step 3 to 6 for each element of A until the STACK is empty

Step 3. If an operand is encountered add it to B

Step 4. If a right parenthesis is encountered push it onto STACK

Step 5. If an operator is encountered then:
a. Repeatedly pop from STACK and add to B each operator (on the top of STACK) which has same or higher precedence than the operator.
b. Add operator to STACK

Step 6. If left parenthesis is encontered then
a. Repeatedly pop from the STACK and add to B (each operator on top of stack until a left parenthesis is encounterd)
b. Remove the left parenthesis

Step 7. Exit

Infix to prefix conversion

Expression =  (A+B^C)*D+E^5

Step 1. Reverse the infix expression.

  5^E+D*)C^B+A( 

Step 2. Make Every '(' as ')' and every ')' as '('

5^E+D*(C^B+A) 

Step 3. Convert expression to postfix form.

A+(B*C-(D/E-F)*G)*H
Expression Stack Output Comment
5^E+D*(C^B+A) Empty - Initial
^E+D*(C^B+A) Empty 5 Print
E+D*(C^B+A) ^ 5 Push
+D*(C^B+A) ^ 5E Push
D*(C^B+A) + 5E^ Pop And Push
*(C^B+A) + 5E^D Print
(C^B+A) +* 5E^D Push
C^B+A) +*( 5E^D Push
^B+A) +*( 5E^DC Print
B+A) +*(^ 5E^DC Push
+A) +*(^ 5E^DCB Print
A) +*(+ 5E^DCB^ Pop And Push
) +*(+ 5E^DCB^A Print
End +* 5E^DCB^A+ Pop Until '('
End Empty 5E^DCB^A+*+ Pop Every element

Step 4. Reverse the expression.

     +*+A^BCD^E5 

Result

+*+A^BCD^E5 

Infix to prefix implementation in c : without Pointer

<span class="pln">
</span><span class="com"># include &lt;stdio.h&gt;</span><span class="pln">
</span><span class="com"># include &lt;string.h&gt;</span><span class="pln">
</span><span class="com"># define MAX 20</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> infixtoprefix</span><span class="pun">(</span><span class="kwd">char</span><span class="pln"> infix</span><span class="pun">[</span><span class="lit">20</span><span class="pun">],</span><span class="kwd">char</span><span class="pln"> prefix</span><span class="pun">[</span><span class="lit">20</span><span class="pun">]);</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> reverse</span><span class="pun">(</span><span class="kwd">char</span><span class="pln"> array</span><span class="pun">[</span><span class="lit">30</span><span class="pun">]);</span><span class="pln">
</span><span class="kwd">char</span><span class="pln"> pop</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> push</span><span class="pun">(</span><span class="kwd">char</span><span class="pln"> symbol</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> isOperator</span><span class="pun">(</span><span class="kwd">char</span><span class="pln"> symbol</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> prcd</span><span class="pun">(</span><span class="pln">symbol</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> top</span><span class="pun">=-</span><span class="lit">1</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">char</span><span class="pln"> stack</span><span class="pun">[</span><span class="pln">MAX</span><span class="pun">];</span><span class="pln">
main</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">char</span><span class="pln"> infix</span><span class="pun">[</span><span class="lit">20</span><span class="pun">],</span><span class="pln">prefix</span><span class="pun">[</span><span class="lit">20</span><span class="pun">],</span><span class="pln">temp</span><span class="pun">;</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"Enter infix operation: "</span><span class="pun">);</span><span class="pln">
	gets</span><span class="pun">(</span><span class="pln">infix</span><span class="pun">);</span><span class="pln">
	infixtoprefix</span><span class="pun">(</span><span class="pln">infix</span><span class="pun">,</span><span class="pln">prefix</span><span class="pun">);</span><span class="pln">
	reverse</span><span class="pun">(</span><span class="pln">prefix</span><span class="pun">);</span><span class="pln">
	puts</span><span class="pun">((</span><span class="pln">prefix</span><span class="pun">));</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">//--------------------------------------------------------</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> infixtoprefix</span><span class="pun">(</span><span class="kwd">char</span><span class="pln"> infix</span><span class="pun">[</span><span class="lit">20</span><span class="pun">],</span><span class="kwd">char</span><span class="pln"> prefix</span><span class="pun">[</span><span class="lit">20</span><span class="pun">])</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">int</span><span class="pln"> i</span><span class="pun">,</span><span class="pln">j</span><span class="pun">=</span><span class="lit">0</span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">char</span><span class="pln"> symbol</span><span class="pun">;</span><span class="pln">
	stack</span><span class="pun">[++</span><span class="pln">top</span><span class="pun">]=</span><span class="str">'#'</span><span class="pun">;</span><span class="pln">
	reverse</span><span class="pun">(</span><span class="pln">infix</span><span class="pun">);</span><span class="pln">
	</span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="pln">i</span><span class="pun">=</span><span class="lit">0</span><span class="pun">;</span><span class="pln">i</span><span class="pun">&lt;</span><span class="pln">strlen</span><span class="pun">(</span><span class="pln">infix</span><span class="pun">);</span><span class="pln">i</span><span class="pun">++)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
		symbol</span><span class="pun">=</span><span class="pln">infix</span><span class="pun">[</span><span class="pln">i</span><span class="pun">];</span><span class="pln">
		</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isOperator</span><span class="pun">(</span><span class="pln">symbol</span><span class="pun">)==</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
			prefix</span><span class="pun">[</span><span class="pln">j</span><span class="pun">]=</span><span class="pln">symbol</span><span class="pun">;</span><span class="pln">
			j</span><span class="pun">++;</span><span class="pln">
		</span><span class="pun">}</span><span class="pln"> </span><span class="kwd">else</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
			</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">symbol</span><span class="pun">==</span><span class="str">')'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				push</span><span class="pun">(</span><span class="pln">symbol</span><span class="pun">);</span><span class="pln">
			</span><span class="pun">}</span><span class="pln"> </span><span class="kwd">else</span><span class="pln"> </span><span class="kwd">if</span><span class="pun">(</span><span class="pln">symbol </span><span class="pun">==</span><span class="pln"> </span><span class="str">'('</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				</span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln">stack</span><span class="pun">[</span><span class="pln">top</span><span class="pun">]!=</span><span class="str">')'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
					prefix</span><span class="pun">[</span><span class="pln">j</span><span class="pun">]=</span><span class="pln">pop</span><span class="pun">();</span><span class="pln">
					j</span><span class="pun">++;</span><span class="pln">
				</span><span class="pun">}</span><span class="pln">
				pop</span><span class="pun">();</span><span class="pln">
			</span><span class="pun">}</span><span class="pln"> </span><span class="kwd">else</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">prcd</span><span class="pun">(</span><span class="pln">stack</span><span class="pun">[</span><span class="pln">top</span><span class="pun">])&lt;=</span><span class="pln">prcd</span><span class="pun">(</span><span class="pln">symbol</span><span class="pun">))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
					push</span><span class="pun">(</span><span class="pln">symbol</span><span class="pun">);</span><span class="pln">
				</span><span class="pun">}</span><span class="pln"> </span><span class="kwd">else</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
					</span><span class="kwd">while</span><span class="pun">(</span><span class="pln">prcd</span><span class="pun">(</span><span class="pln">stack</span><span class="pun">[</span><span class="pln">top</span><span class="pun">])&gt;=</span><span class="pln">prcd</span><span class="pun">(</span><span class="pln">symbol</span><span class="pun">))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
						prefix</span><span class="pun">[</span><span class="pln">j</span><span class="pun">]=</span><span class="pln">pop</span><span class="pun">();</span><span class="pln">
						j</span><span class="pun">++;</span><span class="pln">
					</span><span class="pun">}</span><span class="pln">
					push</span><span class="pun">(</span><span class="pln">symbol</span><span class="pun">);</span><span class="pln">
				</span><span class="pun">}</span><span class="pln">
				</span><span class="com">//end for else</span><span class="pln">
			</span><span class="pun">}</span><span class="pln">
		</span><span class="pun">}</span><span class="pln">
		</span><span class="com">//end for else</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="com">//end for for</span><span class="pln">
	</span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln">stack</span><span class="pun">[</span><span class="pln">top</span><span class="pun">]!=</span><span class="str">'#'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
		prefix</span><span class="pun">[</span><span class="pln">j</span><span class="pun">]=</span><span class="pln">pop</span><span class="pun">();</span><span class="pln">
		j</span><span class="pun">++;</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	prefix</span><span class="pun">[</span><span class="pln">j</span><span class="pun">]=</span><span class="str">'\0'</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">////--------------------------------------------------------</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> reverse</span><span class="pun">(</span><span class="kwd">char</span><span class="pln"> array</span><span class="pun">[</span><span class="lit">30</span><span class="pun">])</span><span class="pln"> </span><span class="com">// for reverse of the given expression {</span><span class="pln">
	</span><span class="kwd">int</span><span class="pln"> i</span><span class="pun">,</span><span class="pln">j</span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">char</span><span class="pln"> temp</span><span class="pun">[</span><span class="lit">100</span><span class="pun">];</span><span class="pln">
	</span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="pln">i</span><span class="pun">=</span><span class="pln">strlen</span><span class="pun">(</span><span class="pln">array</span><span class="pun">)-</span><span class="lit">1</span><span class="pun">,</span><span class="pln">j</span><span class="pun">=</span><span class="lit">0</span><span class="pun">;</span><span class="pln">i</span><span class="pun">+</span><span class="lit">1</span><span class="pun">!=</span><span class="lit">0</span><span class="pun">;--</span><span class="pln">i</span><span class="pun">,++</span><span class="pln">j</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
		temp</span><span class="pun">[</span><span class="pln">j</span><span class="pun">]=</span><span class="pln">array</span><span class="pun">[</span><span class="pln">i</span><span class="pun">];</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	temp</span><span class="pun">[</span><span class="pln">j</span><span class="pun">]=</span><span class="str">'\0'</span><span class="pun">;</span><span class="pln">
	strcpy</span><span class="pun">(</span><span class="pln">array</span><span class="pun">,</span><span class="pln">temp</span><span class="pun">);</span><span class="pln">
	</span><span class="kwd">return</span><span class="pln"> array</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">//--------------------------------</span><span class="pln">
</span><span class="kwd">char</span><span class="pln"> pop</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">char</span><span class="pln"> a</span><span class="pun">;</span><span class="pln">
	a</span><span class="pun">=</span><span class="pln">stack</span><span class="pun">[</span><span class="pln">top</span><span class="pun">];</span><span class="pln">
	top</span><span class="pun">--;</span><span class="pln">
	</span><span class="kwd">return</span><span class="pln"> a</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">//----------------------------------</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> push</span><span class="pun">(</span><span class="kwd">char</span><span class="pln"> symbol</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
	top</span><span class="pun">++;</span><span class="pln">
	stack</span><span class="pun">[</span><span class="pln">top</span><span class="pun">]=</span><span class="pln">symbol</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">//------------------------------------------</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> prcd</span><span class="pun">(</span><span class="pln">symbol</span><span class="pun">)</span><span class="pln"> </span><span class="com">// returns the value that helps in the precedence {</span><span class="pln">
	</span><span class="kwd">switch</span><span class="pun">(</span><span class="pln">symbol</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
		</span><span class="kwd">case</span><span class="pln"> </span><span class="str">'+'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">'-'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">return</span><span class="pln"> </span><span class="lit">2</span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">case</span><span class="pln"> </span><span class="str">'*'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">'/'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">return</span><span class="pln"> </span><span class="lit">4</span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">case</span><span class="pln"> </span><span class="str">'$'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">'^'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">return</span><span class="pln"> </span><span class="lit">6</span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">case</span><span class="pln"> </span><span class="str">'#'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">'('</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">')'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">return</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">//-------------------------------------------------</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> isOperator</span><span class="pun">(</span><span class="kwd">char</span><span class="pln"> symbol</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">switch</span><span class="pun">(</span><span class="pln">symbol</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
		</span><span class="kwd">case</span><span class="pln"> </span><span class="str">'+'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">'-'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">'*'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">'/'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">'^'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">'$'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">'&amp;'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">'('</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">')'</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">return</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">default</span><span class="pun">:</span><span class="pln">
		        </span><span class="kwd">return</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
		</span><span class="com">// returns 0 if the symbol is other than given above</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span>

Infix to prefix implementation in c : with Pointer

<span class="pln">
</span><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;stdio.h&gt;</span><span class="pln">
</span><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;conio.h&gt;</span><span class="pln">
</span><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;string.h&gt;</span><span class="pln">
</span><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;ctype.h&gt;</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> MAX </span><span class="lit">50</span><span class="pln">
</span><span class="kwd">struct</span><span class="pln"> infix
</span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">char</span><span class="pln"> target</span><span class="pun">[</span><span class="pln">MAX</span><span class="pun">]</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">char</span><span class="pln"> stack</span><span class="pun">[</span><span class="pln">MAX</span><span class="pun">]</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">char</span><span class="pln"> </span><span class="pun">*</span><span class="pln">s</span><span class="pun">,</span><span class="pln"> </span><span class="pun">*</span><span class="pln">t </span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">int</span><span class="pln"> top</span><span class="pun">,</span><span class="pln"> l </span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln"> </span><span class="pun">;</span><span class="pln">

</span><span class="kwd">void</span><span class="pln"> initinfix </span><span class="pun">(</span><span class="pln"> </span><span class="kwd">struct</span><span class="pln"> infix </span><span class="pun">*</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> setexpr </span><span class="pun">(</span><span class="pln"> </span><span class="kwd">struct</span><span class="pln"> infix </span><span class="pun">*,</span><span class="pln"> </span><span class="kwd">char</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> push </span><span class="pun">(</span><span class="pln"> </span><span class="kwd">struct</span><span class="pln"> infix </span><span class="pun">*,</span><span class="pln"> </span><span class="kwd">char</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
</span><span class="kwd">char</span><span class="pln"> pop </span><span class="pun">(</span><span class="pln"> </span><span class="kwd">struct</span><span class="pln"> infix </span><span class="pun">*</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> convert </span><span class="pun">(</span><span class="pln"> </span><span class="kwd">struct</span><span class="pln"> infix </span><span class="pun">*</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> priority </span><span class="pun">(</span><span class="pln"> </span><span class="kwd">char</span><span class="pln"> c </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> show </span><span class="pun">(</span><span class="pln"> </span><span class="kwd">struct</span><span class="pln"> infix </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">

</span><span class="kwd">void</span><span class="pln"> main</span><span class="pun">(</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">struct</span><span class="pln"> infix q </span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">char</span><span class="pln"> expr</span><span class="pun">[</span><span class="pln">MAX</span><span class="pun">]</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	</span><span class="com">//clrscr( ) ;</span><span class="pln">
	initinfix </span><span class="pun">(</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln">q </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	printf </span><span class="pun">(</span><span class="pln"> </span><span class="str">"\nEnter an expression in infix form: "</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	gets </span><span class="pun">(</span><span class="pln"> expr </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	setexpr </span><span class="pun">(</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln">q</span><span class="pun">,</span><span class="pln"> expr </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	convert </span><span class="pun">(</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln">q </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	printf </span><span class="pun">(</span><span class="pln"> </span><span class="str">"The Prefix expression is: "</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	show </span><span class="pun">(</span><span class="pln"> q </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	getch</span><span class="pun">(</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">/* initializes elements of structure variable */</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> initinfix </span><span class="pun">(</span><span class="pln"> </span><span class="kwd">struct</span><span class="pln"> infix </span><span class="pun">*</span><span class="pln">pq </span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	pq </span><span class="pun">-&gt;</span><span class="pln"> top </span><span class="pun">=</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	strcpy </span><span class="pun">(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> target</span><span class="pun">,</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	strcpy </span><span class="pun">(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> stack</span><span class="pun">,</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	pq </span><span class="pun">-&gt;</span><span class="pln"> l </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">/* reverses the given expression */</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> setexpr </span><span class="pun">(</span><span class="pln"> </span><span class="kwd">struct</span><span class="pln"> infix </span><span class="pun">*</span><span class="pln">pq</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">char</span><span class="pln"> </span><span class="pun">*</span><span class="pln">str </span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">=</span><span class="pln"> str </span><span class="pun">;</span><span class="pln">
	strrev </span><span class="pun">(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	pq </span><span class="pun">-&gt;</span><span class="pln"> l </span><span class="pun">=</span><span class="pln"> strlen </span><span class="pun">(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	</span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> target </span><span class="pun">+</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> l </span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">'\0'</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	pq </span><span class="pun">-&gt;</span><span class="pln"> t </span><span class="pun">=</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> target </span><span class="pun">+</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> l </span><span class="pun">-</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">/* adds operator to the stack */</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> push </span><span class="pun">(</span><span class="pln"> </span><span class="kwd">struct</span><span class="pln"> infix </span><span class="pun">*</span><span class="pln">pq</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">char</span><span class="pln"> c </span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> top </span><span class="pun">==</span><span class="pln"> MAX </span><span class="pun">-</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
		printf </span><span class="pun">(</span><span class="pln"> </span><span class="str">"\nStack is full.\n"</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">else</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		pq </span><span class="pun">-&gt;</span><span class="pln"> top</span><span class="pun">++</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
		pq </span><span class="pun">-&gt;</span><span class="pln"> stack</span><span class="pun">[</span><span class="pln">pq </span><span class="pun">-&gt;</span><span class="pln"> top</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> c </span><span class="pun">;</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">/* pops an operator from the stack */</span><span class="pln">
</span><span class="kwd">char</span><span class="pln"> pop </span><span class="pun">(</span><span class="pln"> </span><span class="kwd">struct</span><span class="pln"> infix </span><span class="pun">*</span><span class="pln">pq </span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> top </span><span class="pun">==</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		printf </span><span class="pun">(</span><span class="pln"> </span><span class="str">"Stack is empty\n"</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">return</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="kwd">else</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		</span><span class="kwd">char</span><span class="pln"> item </span><span class="pun">=</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> stack</span><span class="pun">[</span><span class="pln">pq </span><span class="pun">-&gt;</span><span class="pln"> top</span><span class="pun">]</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
		pq </span><span class="pun">-&gt;</span><span class="pln"> top</span><span class="pun">--</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">return</span><span class="pln"> item </span><span class="pun">;</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">/* converts the infix expr. to prefix form */</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> convert </span><span class="pun">(</span><span class="pln"> </span><span class="kwd">struct</span><span class="pln"> infix </span><span class="pun">*</span><span class="pln">pq </span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">char</span><span class="pln"> opr </span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="str">' '</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="str">'\t'</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
		</span><span class="pun">{</span><span class="pln">
			pq </span><span class="pun">-&gt;</span><span class="pln"> s</span><span class="pun">++</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
			</span><span class="kwd">continue</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
		</span><span class="pun">}</span><span class="pln">
		</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> isdigit </span><span class="pun">(</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> isalpha </span><span class="pun">(</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
		</span><span class="pun">{</span><span class="pln">
			</span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> isdigit </span><span class="pun">(</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> isalpha </span><span class="pun">(</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
			</span><span class="pun">{</span><span class="pln">
				</span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> t </span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
				pq </span><span class="pun">-&gt;</span><span class="pln"> s</span><span class="pun">++</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
				pq </span><span class="pun">-&gt;</span><span class="pln"> t</span><span class="pun">--</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
			</span><span class="pun">}</span><span class="pln">
		</span><span class="pun">}</span><span class="pln">
		</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="str">')'</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
		</span><span class="pun">{</span><span class="pln">
			push </span><span class="pun">(</span><span class="pln"> pq</span><span class="pun">,</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
			pq </span><span class="pun">-&gt;</span><span class="pln"> s</span><span class="pun">++</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
		</span><span class="pun">}</span><span class="pln">
		</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="str">'*'</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="str">'+'</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="str">'/'</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="str">'%'</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="str">'-'</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="str">'$'</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
		</span><span class="pun">{</span><span class="pln">
			</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> top </span><span class="pun">!=</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
			</span><span class="pun">{</span><span class="pln">
				opr </span><span class="pun">=</span><span class="pln"> pop </span><span class="pun">(</span><span class="pln"> pq </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
				</span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> priority </span><span class="pun">(</span><span class="pln"> opr </span><span class="pun">)</span><span class="pln"> </span><span class="pun">&gt;</span><span class="pln"> priority </span><span class="pun">(</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
				</span><span class="pun">{</span><span class="pln">
					</span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> t </span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> opr </span><span class="pun">;</span><span class="pln">
					pq </span><span class="pun">-&gt;</span><span class="pln"> t</span><span class="pun">--</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
					opr </span><span class="pun">=</span><span class="pln"> pop </span><span class="pun">(</span><span class="pln"> pq </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
				</span><span class="pun">}</span><span class="pln">
				push </span><span class="pun">(</span><span class="pln"> pq</span><span class="pun">,</span><span class="pln"> opr </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
				push </span><span class="pun">(</span><span class="pln"> pq</span><span class="pun">,</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
			</span><span class="pun">}</span><span class="pln">
			</span><span class="kwd">else</span><span class="pln">
				push </span><span class="pun">(</span><span class="pln"> pq</span><span class="pun">,</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
				pq </span><span class="pun">-&gt;</span><span class="pln"> s</span><span class="pun">++</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
		</span><span class="pun">}</span><span class="pln">
		</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> s </span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="str">'('</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
		</span><span class="pun">{</span><span class="pln">
			opr </span><span class="pun">=</span><span class="pln"> pop </span><span class="pun">(</span><span class="pln"> pq </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
			</span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> opr </span><span class="pun">!=</span><span class="pln"> </span><span class="str">')'</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
			</span><span class="pun">{</span><span class="pln">
				</span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> t </span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> opr </span><span class="pun">;</span><span class="pln">
				pq </span><span class="pun">-&gt;</span><span class="pln"> t</span><span class="pun">--</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
				opr </span><span class="pun">=</span><span class="pln"> pop </span><span class="pun">(</span><span class="pln"> pq </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
			</span><span class="pun">}</span><span class="pln">
			pq </span><span class="pun">-&gt;</span><span class="pln"> s</span><span class="pun">++</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
		</span><span class="pun">}</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> top </span><span class="pun">!=</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		opr </span><span class="pun">=</span><span class="pln"> pop </span><span class="pun">(</span><span class="pln"> pq </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
		</span><span class="pun">*(</span><span class="pln"> pq </span><span class="pun">-&gt;</span><span class="pln"> t </span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> opr </span><span class="pun">;</span><span class="pln">
		pq </span><span class="pun">-&gt;</span><span class="pln"> t</span><span class="pun">--</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	pq </span><span class="pun">-&gt;</span><span class="pln"> t</span><span class="pun">++</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">/* returns the priotity of the operator */</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> priority </span><span class="pun">(</span><span class="pln"> </span><span class="kwd">char</span><span class="pln"> c </span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> c </span><span class="pun">==</span><span class="pln"> </span><span class="str">'$'</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
		</span><span class="kwd">return</span><span class="pln"> </span><span class="lit">3</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> c </span><span class="pun">==</span><span class="pln"> </span><span class="str">'*'</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> c </span><span class="pun">==</span><span class="pln"> </span><span class="str">'/'</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> c </span><span class="pun">==</span><span class="pln"> </span><span class="str">'%'</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
		</span><span class="kwd">return</span><span class="pln"> </span><span class="lit">2</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">else</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> c </span><span class="pun">==</span><span class="pln"> </span><span class="str">'+'</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> c </span><span class="pun">==</span><span class="pln"> </span><span class="str">'-'</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
			</span><span class="kwd">return</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">else</span><span class="pln">
			</span><span class="kwd">return</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">/* displays the prefix form of given expr. */</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> show </span><span class="pun">(</span><span class="pln"> </span><span class="kwd">struct</span><span class="pln"> infix pq </span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq</span><span class="pun">.</span><span class="pln">t </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		printf </span><span class="pun">(</span><span class="pln"> </span><span class="str">" %c"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">*(</span><span class="pln"> pq</span><span class="pun">.</span><span class="pln">t </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
		pq</span><span class="pun">.</span><span class="pln">t</span><span class="pun">++</span><span class="pln"> </span><span class="pun">;</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">


</span>

Output

<span class="pln">

</span><span class="typ">Enter</span><span class="pln"> an expression </span><span class="kwd">in</span><span class="pln"> infix form</span><span class="pun">:</span><span class="pln"> </span><span class="pun">(</span><span class="pln">A</span><span class="pun">+</span><span class="pln">B</span><span class="pun">*</span><span class="pln">C</span><span class="pun">)</span><span class="pln">
</span><span class="typ">The</span><span class="pln"> </span><span class="typ">Prefix</span><span class="pln"> expression </span><span class="kwd">is</span><span class="pun">:</span><span class="pln">  </span><span class="pun">+</span><span class="pln"> A </span><span class="pun">*</span><span class="pln"> B C

</span>

No Questions Data Available.
No Program Data.

Stay Ahead of the Curve! Check out these trending topics and sharpen your skills.