C Program of polynomial addition and multiplication using linked list

Data Structure Linked List (Article) Linked List (Program)

4862

Program:

<span class="com">/* C Program of polynomial addition and multiplication using linked list */</span><span class="pln">
</span><span class="com">#include</span><span class="str">&lt;stdio.h&gt;</span><span class="pln">
</span><span class="com">#include</span><span class="str">&lt;stdlib.h&gt;</span><span class="pln">

</span><span class="kwd">struct</span><span class="pln"> node
</span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">float</span><span class="pln"> coef</span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">int</span><span class="pln"> expo</span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">link</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"> node </span><span class="pun">*</span><span class="pln">create</span><span class="pun">(</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*);</span><span class="pln">
</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">insert_s</span><span class="pun">(</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*,</span><span class="kwd">float</span><span class="pun">,</span><span class="kwd">int</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">insert</span><span class="pun">(</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*,</span><span class="kwd">float</span><span class="pun">,</span><span class="kwd">int</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> display</span><span class="pun">(</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">ptr</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> poly_add</span><span class="pun">(</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*,</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*);</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> poly_mult</span><span class="pun">(</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*,</span><span class="kwd">struct</span><span class="pln"> node </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="pun">{</span><span class="pln">
	</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">start1</span><span class="pun">=</span><span class="pln">NULL</span><span class="pun">,*</span><span class="pln">start2</span><span class="pun">=</span><span class="pln">NULL</span><span class="pun">;</span><span class="pln">
	
	printf</span><span class="pun">(</span><span class="str">"Enter polynomial 1 :\n"</span><span class="pun">);</span><span class="pln">
	start1</span><span class="pun">=</span><span class="pln">create</span><span class="pun">(</span><span class="pln">start1</span><span class="pun">);</span><span class="pln">

	printf</span><span class="pun">(</span><span class="str">"Enter polynomial 2 :\n"</span><span class="pun">);</span><span class="pln">
	start2</span><span class="pun">=</span><span class="pln">create</span><span class="pun">(</span><span class="pln">start2</span><span class="pun">);</span><span class="pln">

	printf</span><span class="pun">(</span><span class="str">"Polynomial 1 is :  "</span><span class="pun">);</span><span class="pln">
	display</span><span class="pun">(</span><span class="pln">start1</span><span class="pun">);</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"Polynomial 2 is :  "</span><span class="pun">);</span><span class="pln">
	display</span><span class="pun">(</span><span class="pln">start2</span><span class="pun">);</span><span class="pln">
		
	poly_add</span><span class="pun">(</span><span class="pln">start1</span><span class="pun">,</span><span class="pln"> start2</span><span class="pun">);</span><span class="pln">
	poly_mult</span><span class="pun">(</span><span class="pln">start1</span><span class="pun">,</span><span class="pln"> start2</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="com">/*End of main()*/</span><span class="pln">

</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">create</span><span class="pun">(</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">start</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">n</span><span class="pun">,</span><span class="pln">ex</span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">float</span><span class="pln"> co</span><span class="pun">;</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"Enter the number of terms : "</span><span class="pun">);</span><span class="pln">
	scanf</span><span class="pun">(</span><span class="str">"%d"</span><span class="pun">,&amp;</span><span class="pln">n</span><span class="pun">);</span><span class="pln">
	</span><span class="kwd">for</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="pln">i</span><span class="pun">&lt;=</span><span class="pln">n</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">
		printf</span><span class="pun">(</span><span class="str">"Enter coeficient for term %d : "</span><span class="pun">,</span><span class="pln">i</span><span class="pun">);</span><span class="pln">
		scanf</span><span class="pun">(</span><span class="str">"%f"</span><span class="pun">,&amp;</span><span class="pln">co</span><span class="pun">);</span><span class="pln">
		printf</span><span class="pun">(</span><span class="str">"Enter exponent for term %d : "</span><span class="pun">,</span><span class="pln">i</span><span class="pun">);</span><span class="pln">
		scanf</span><span class="pun">(</span><span class="str">"%d"</span><span class="pun">,&amp;</span><span class="pln">ex</span><span class="pun">);</span><span class="pln">
		start</span><span class="pun">=</span><span class="pln">insert_s</span><span class="pun">(</span><span class="pln">start</span><span class="pun">,</span><span class="pln">co</span><span class="pun">,</span><span class="pln">ex</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"> start</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="com">/*End of create()*/</span><span class="pln">
</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">insert_s</span><span class="pun">(</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">start</span><span class="pun">,</span><span class="kwd">float</span><span class="pln"> co</span><span class="pun">,</span><span class="kwd">int</span><span class="pln"> ex</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"> node </span><span class="pun">*</span><span class="pln">ptr</span><span class="pun">,*</span><span class="pln">tmp</span><span class="pun">;</span><span class="pln">
	tmp</span><span class="pun">=(</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*)</span><span class="pln">malloc</span><span class="pun">(</span><span class="kwd">sizeof</span><span class="pun">(</span><span class="kwd">struct</span><span class="pln"> node</span><span class="pun">));</span><span class="pln">
	tmp</span><span class="pun">-&gt;</span><span class="pln">coef</span><span class="pun">=</span><span class="pln">co</span><span class="pun">;</span><span class="pln">
	tmp</span><span class="pun">-&gt;</span><span class="pln">expo</span><span class="pun">=</span><span class="pln">ex</span><span class="pun">;</span><span class="pln">
	</span><span class="com">/*list empty or exp greater than first one */</span><span class="pln">
	</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">start</span><span class="pun">==</span><span class="pln">NULL </span><span class="pun">||</span><span class="pln"> ex </span><span class="pun">&gt;</span><span class="pln"> start</span><span class="pun">-&gt;</span><span class="pln">expo</span><span class="pun">)</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		tmp</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">=</span><span class="pln">start</span><span class="pun">;</span><span class="pln">
		start</span><span class="pun">=</span><span class="pln">tmp</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">
		ptr</span><span class="pun">=</span><span class="pln">start</span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">while</span><span class="pun">(</span><span class="pln">ptr</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">!=</span><span class="pln">NULL </span><span class="pun">&amp;&amp;</span><span class="pln"> ptr</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">-&gt;</span><span class="pln">expo </span><span class="pun">&gt;=</span><span class="pln"> ex</span><span class="pun">)</span><span class="pln">
			ptr</span><span class="pun">=</span><span class="pln">ptr</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">;</span><span class="pln">
		tmp</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">=</span><span class="pln">ptr</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">;</span><span class="pln">
		ptr</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">=</span><span class="pln">tmp</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"> start</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="com">/*End of insert()*/</span><span class="pln">
	
</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">insert</span><span class="pun">(</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">start</span><span class="pun">,</span><span class="kwd">float</span><span class="pln"> co</span><span class="pun">,</span><span class="kwd">int</span><span class="pln"> ex</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"> node </span><span class="pun">*</span><span class="pln">ptr</span><span class="pun">,*</span><span class="pln">tmp</span><span class="pun">;</span><span class="pln">
	tmp</span><span class="pun">=(</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*)</span><span class="pln">malloc</span><span class="pun">(</span><span class="kwd">sizeof</span><span class="pun">(</span><span class="kwd">struct</span><span class="pln"> node</span><span class="pun">));</span><span class="pln">
	tmp</span><span class="pun">-&gt;</span><span class="pln">coef</span><span class="pun">=</span><span class="pln">co</span><span class="pun">;</span><span class="pln">
	tmp</span><span class="pun">-&gt;</span><span class="pln">expo</span><span class="pun">=</span><span class="pln">ex</span><span class="pun">;</span><span class="pln">
	</span><span class="com">/*If list is empty*/</span><span class="pln">
	</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">start</span><span class="pun">==</span><span class="pln">NULL</span><span class="pun">)</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		tmp</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">=</span><span class="pln">start</span><span class="pun">;</span><span class="pln">
		start</span><span class="pun">=</span><span class="pln">tmp</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="com">/*Insert at the end of the list*/</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		ptr</span><span class="pun">=</span><span class="pln">start</span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">while</span><span class="pun">(</span><span class="pln">ptr</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">!=</span><span class="pln">NULL</span><span class="pun">)</span><span class="pln">
			ptr</span><span class="pun">=</span><span class="pln">ptr</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">;</span><span class="pln">
		tmp</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">=</span><span class="pln">ptr</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">;</span><span class="pln">
		ptr</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">=</span><span class="pln">tmp</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"> start</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="com">/*End of insert()*/</span><span class="pln">

</span><span class="kwd">void</span><span class="pln"> display</span><span class="pun">(</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">ptr</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">ptr</span><span class="pun">==</span><span class="pln">NULL</span><span class="pun">)</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		printf</span><span class="pun">(</span><span class="str">"Zero polynomial\n"</span><span class="pun">);</span><span class="pln">
		</span><span class="kwd">return</span><span class="pun">;</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">ptr</span><span class="pun">!=</span><span class="pln">NULL</span><span class="pun">)</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		printf</span><span class="pun">(</span><span class="str">"(%.1fx^%d)"</span><span class="pun">,</span><span class="pln"> ptr</span><span class="pun">-&gt;</span><span class="pln">coef</span><span class="pun">,</span><span class="pln">ptr</span><span class="pun">-&gt;</span><span class="pln">expo</span><span class="pun">);</span><span class="pln">
		ptr</span><span class="pun">=</span><span class="pln">ptr</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">ptr</span><span class="pun">!=</span><span class="pln">NULL</span><span class="pun">)</span><span class="pln">
			printf</span><span class="pun">(</span><span class="str">" + "</span><span class="pun">);</span><span class="pln">
		</span><span class="kwd">else</span><span class="pln"> 
			printf</span><span class="pun">(</span><span class="str">"\n"</span><span class="pun">);</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="com">/*End of display()*/</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> poly_add</span><span class="pun">(</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">p1</span><span class="pun">,</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">p2</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"> node </span><span class="pun">*</span><span class="pln">start3</span><span class="pun">;</span><span class="pln">
	start3</span><span class="pun">=</span><span class="pln">NULL</span><span class="pun">;</span><span class="pln">
	
	</span><span class="kwd">while</span><span class="pun">(</span><span class="pln">p1</span><span class="pun">!=</span><span class="pln">NULL </span><span class="pun">&amp;&amp;</span><span class="pln"> p2</span><span class="pun">!=</span><span class="pln">NULL</span><span class="pun">)</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">p1</span><span class="pun">-&gt;</span><span class="pln">expo </span><span class="pun">&gt;</span><span class="pln"> p2</span><span class="pun">-&gt;</span><span class="pln">expo</span><span class="pun">)</span><span class="pln">
		</span><span class="pun">{</span><span class="pln">
			start3</span><span class="pun">=</span><span class="pln">insert</span><span class="pun">(</span><span class="pln">start3</span><span class="pun">,</span><span class="pln">p1</span><span class="pun">-&gt;</span><span class="pln">coef</span><span class="pun">,</span><span class="pln">p1</span><span class="pun">-&gt;</span><span class="pln">expo</span><span class="pun">);</span><span class="pln">
			p1</span><span class="pun">=</span><span class="pln">p1</span><span class="pun">-&gt;</span><span class="pln">link</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">p2</span><span class="pun">-&gt;</span><span class="pln">expo </span><span class="pun">&gt;</span><span class="pln"> p1</span><span class="pun">-&gt;</span><span class="pln">expo</span><span class="pun">)</span><span class="pln">
		</span><span class="pun">{</span><span class="pln">
			start3</span><span class="pun">=</span><span class="pln">insert</span><span class="pun">(</span><span class="pln">start3</span><span class="pun">,</span><span class="pln">p2</span><span class="pun">-&gt;</span><span class="pln">coef</span><span class="pun">,</span><span class="pln">p2</span><span class="pun">-&gt;</span><span class="pln">expo</span><span class="pun">);</span><span class="pln">
			p2</span><span class="pun">=</span><span class="pln">p2</span><span class="pun">-&gt;</span><span class="pln">link</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">p1</span><span class="pun">-&gt;</span><span class="pln">expo</span><span class="pun">==</span><span class="pln">p2</span><span class="pun">-&gt;</span><span class="pln">expo</span><span class="pun">)</span><span class="pln">
		</span><span class="pun">{</span><span class="pln">
			start3</span><span class="pun">=</span><span class="pln">insert</span><span class="pun">(</span><span class="pln">start3</span><span class="pun">,</span><span class="pln">p1</span><span class="pun">-&gt;</span><span class="pln">coef</span><span class="pun">+</span><span class="pln">p2</span><span class="pun">-&gt;</span><span class="pln">coef</span><span class="pun">,</span><span class="pln">p1</span><span class="pun">-&gt;</span><span class="pln">expo</span><span class="pun">);</span><span class="pln">
			p1</span><span class="pun">=</span><span class="pln">p1</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">;</span><span class="pln">
			p2</span><span class="pun">=</span><span class="pln">p2</span><span class="pun">-&gt;</span><span class="pln">link</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">/*if poly2 has finished and elements left in poly1*/</span><span class="pln">
	</span><span class="kwd">while</span><span class="pun">(</span><span class="pln">p1</span><span class="pun">!=</span><span class="pln">NULL</span><span class="pun">)</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		start3</span><span class="pun">=</span><span class="pln">insert</span><span class="pun">(</span><span class="pln">start3</span><span class="pun">,</span><span class="pln">p1</span><span class="pun">-&gt;</span><span class="pln">coef</span><span class="pun">,</span><span class="pln">p1</span><span class="pun">-&gt;</span><span class="pln">expo</span><span class="pun">);</span><span class="pln">
		p1</span><span class="pun">=</span><span class="pln">p1</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">;</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	</span><span class="com">/*if poly1 has finished and elements left in poly2*/</span><span class="pln">
	</span><span class="kwd">while</span><span class="pun">(</span><span class="pln">p2</span><span class="pun">!=</span><span class="pln">NULL</span><span class="pun">)</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		start3</span><span class="pun">=</span><span class="pln">insert</span><span class="pun">(</span><span class="pln">start3</span><span class="pun">,</span><span class="pln">p2</span><span class="pun">-&gt;</span><span class="pln">coef</span><span class="pun">,</span><span class="pln">p2</span><span class="pun">-&gt;</span><span class="pln">expo</span><span class="pun">);</span><span class="pln">
		p2</span><span class="pun">=</span><span class="pln">p2</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">;</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">
	printf</span><span class="pun">(</span><span class="str">"Added polynomial is : "</span><span class="pun">);</span><span class="pln">
	display</span><span class="pun">(</span><span class="pln">start3</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="com">/*End of poly_add() */</span><span class="pln">

</span><span class="kwd">void</span><span class="pln"> poly_mult</span><span class="pun">(</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">p1</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">p2</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"> node </span><span class="pun">*</span><span class="pln">start3</span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">struct</span><span class="pln"> node </span><span class="pun">*</span><span class="pln">p2_beg </span><span class="pun">=</span><span class="pln"> p2</span><span class="pun">;</span><span class="pln">
	start3</span><span class="pun">=</span><span class="pln">NULL</span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">p1</span><span class="pun">==</span><span class="pln">NULL </span><span class="pun">||</span><span class="pln"> p2</span><span class="pun">==</span><span class="pln">NULL</span><span class="pun">)</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		printf</span><span class="pun">(</span><span class="str">"Multiplied polynomial is zero polynomial\n"</span><span class="pun">);</span><span class="pln">
		</span><span class="kwd">return</span><span class="pun">;</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">p1</span><span class="pun">!=</span><span class="pln">NULL</span><span class="pun">)</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		p2</span><span class="pun">=</span><span class="pln">p2_beg</span><span class="pun">;</span><span class="pln">
		</span><span class="kwd">while</span><span class="pun">(</span><span class="pln">p2</span><span class="pun">!=</span><span class="pln">NULL</span><span class="pun">)</span><span class="pln">
		</span><span class="pun">{</span><span class="pln">
			start3</span><span class="pun">=</span><span class="pln">insert_s</span><span class="pun">(</span><span class="pln">start3</span><span class="pun">,</span><span class="pln">p1</span><span class="pun">-&gt;</span><span class="pln">coef</span><span class="pun">*</span><span class="pln">p2</span><span class="pun">-&gt;</span><span class="pln">coef</span><span class="pun">,</span><span class="pln">p1</span><span class="pun">-&gt;</span><span class="pln">expo</span><span class="pun">+</span><span class="pln">p2</span><span class="pun">-&gt;</span><span class="pln">expo</span><span class="pun">);</span><span class="pln">
			p2</span><span class="pun">=</span><span class="pln">p2</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">;</span><span class="pln">	
		</span><span class="pun">}</span><span class="pln">
		p1</span><span class="pun">=</span><span class="pln">p1</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">;</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">	
	printf</span><span class="pun">(</span><span class="str">"Multiplied polynomial is : "</span><span class="pun">);</span><span class="pln">
	display</span><span class="pun">(</span><span class="pln">start3</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="com">/*End of poly_mult()*/</span><span class="pln">		</span>

Output:

Enter polynomial 1 :
Enter the number of terms : 2
Enter coeficient for term 1 : 2
Enter exponent for term 1 : 2
Enter coeficient for term 2 : 3
Enter exponent for term 2 : 4
Enter polynomial 2 :
Enter the number of terms : 5
Enter coeficient for term 1 : 4
Enter exponent for term 1 : 3
Enter coeficient for term 2 : 2
Enter exponent for term 2 : 1
Enter coeficient for term 3 : 2
Enter exponent for term 3 : 3
Enter coeficient for term 4 : 4
Enter exponent for term 4 : 5
Enter coeficient for term 5 : 6
Enter exponent for term 5 : 3
Polynomial 1 is :  (3.0x^4) + (2.0x^2)
Polynomial 2 is :  (4.0x^5) + (4.0x^3) + (2.0x^3) + (6.0x^3) + (2.0x^1)
Added polynomial is : (4.0x^5) + (3.0x^4) + (4.0x^3) + (2.0x^3) + (6.0x^3) + (2.
0x^2) + (2.0x^1)
Multiplied polynomial is : (12.0x^9) + (12.0x^7) + (6.0x^7) + (18.0x^7) + (8.0x^
7) + (6.0x^5) + (8.0x^5) + (4.0x^5) + (12.0x^5) + (4.0x^3)
Press any key to continue . . .

Explanation:

C Program of polynomial addition and multiplication using linked list

This Particular section is dedicated to Programs only. If you want learn more about Data Structure. Then you can visit below links to get more depth on this subject.