<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CEUESH45cCp7ImA9WhVTFU4.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391</id><updated>2012-02-29T21:46:49.028+05:30</updated><title>C Data Structure</title><subtitle type="html">This site deals with Data Structure Using C Language for Engineering College Students.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://ds4you.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>43</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/CDataStructure" /><feedburner:info uri="cdatastructure" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUEGRnY_eSp7ImA9WhVTE00.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-6116598064862795721</id><published>2012-02-27T06:17:00.001+05:30</published><updated>2012-02-27T06:17:07.841+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-27T06:17:07.841+05:30</app:edited><title>Binary Search Using C Language - It’s Time Complexity And Algorithm</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;Here is the &lt;b&gt;Binary search
program using C Language &lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;#include &amp;lt; stdio.h&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;void bS(int target,int
value[],int low,int high)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp; int mid;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (value[mid]==target)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp; printf("\nValue found.");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp; return;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp; else if(high&amp;lt; low)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp; printf("\nNot found.");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp; return;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp; else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mid=(low+high)/2;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; if(target &amp;gt; value[mid])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; low=mid+1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; else if(target&amp;lt; value[mid])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; high=mid-1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; bS(target,value,low,high);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&amp;nbsp;void main()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;int array[10] =
{2,5,8,12,14,34,36,39,49,59},x,i,low,high;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;clrscr();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;low=0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;high=9;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;printf("\nThe values
are:-\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;for(x=0;x&amp;lt;10;x++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;printf( "%d
",array[x]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;printf("\nEnter the
value to be searched:-");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;scanf("%d",&amp;amp;i);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;bS(i,array,low,high);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;getch();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;If an &lt;b&gt;array is unsorted
and haphazardly constructed&lt;/b&gt; then it is better to go for sequential search. But
when the array is sorted then binary search will give the best result. The
&lt;b&gt;basic conditions for binary searching&lt;/b&gt; is that the list must be sorted and the
middle element of the list can be directly accessed. In array this is possible,
but in case of linked list, the middle element cannot be accessed directly.So
in linked list searching binary search cannot be applied.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&lt;b&gt;Algorithm for Binary
Search&lt;/b&gt; :-&lt;u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;ARR is the array where the
values are stored. N is the number elements in the array.VAL is the element to
be searched. LOW and HI are two variables storing the lower bound (0) and the
upper bound (N-1) of the array.MID is another variable which will hold the
middle position of the array and sub-array.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;Repeat the following steps
while (LOW&amp;lt;=HI)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;Set MID=(LOW+HI)/2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;If VAL &amp;lt; ARR[MID]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;Set HI=MID-1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;Else If VAL&amp;gt;ARR[MID]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;Set LOW=MID+1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;Else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;Break the loop&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;[End of loop]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;If VAL=ARR[MID]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;Retrun True&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;Else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;Return False&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;End&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3" style="margin-left: .25in;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3" style="margin-left: .25in;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;&lt;b&gt;Complexity
of binary search&lt;/b&gt; :-&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3" style="margin-left: .25in;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 12pt;"&gt;The complexity of binary
search is measured by the number of comparisons to locate an item from a number
of elements; say N.I n binary search after each comparison, the size is reduced
to half. Suppose we need maximum T comparisons to locate the element from the
array, so 2T &amp;gt; N or 2T=N+1.so T=log2N+1.Ignoring the constant 1 ,we can say
that T=log2N.So the complexity is O(log2N)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-6116598064862795721?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YJiskTLtjaE6sbCGHUYWu1SM_ro/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YJiskTLtjaE6sbCGHUYWu1SM_ro/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YJiskTLtjaE6sbCGHUYWu1SM_ro/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YJiskTLtjaE6sbCGHUYWu1SM_ro/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/L6s2onqfBK4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/6116598064862795721/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2012/02/binary-search-using-c-language-its-time.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/6116598064862795721?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/6116598064862795721?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/L6s2onqfBK4/binary-search-using-c-language-its-time.html" title="Binary Search Using C Language - It’s Time Complexity And Algorithm" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2012/02/binary-search-using-c-language-its-time.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04MQHo4eCp7ImA9WhRaE0U.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-6780430183793594363</id><published>2012-02-16T14:16:00.000+05:30</published><updated>2012-02-16T14:16:21.430+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-16T14:16:21.430+05:30</app:edited><title>Link List using C</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;b&gt;Traversing a linked list using C Programming Language&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
In this program we will create five nodes and then the &lt;b&gt;linked list&lt;/b&gt; will be traversed one after another to display the value stored within the node.&lt;br /&gt;
Our next program will create a linked list ( size depends on the user ) and each node will contain the Name , Surname , Address and Telephone number .Then the user has to enter a Name which will be searched in the linked list. If found the details record against the name will be displayed, otherwise a not found message will be displayed.&lt;br /&gt;
&lt;br /&gt;
# include  &amp;lt; stdio.h &amp;gt;&lt;br /&gt;
# include  &amp;lt; malloc.h &amp;gt;&lt;br /&gt;
struct link&lt;br /&gt;
{&lt;br /&gt;
char name[100];&lt;br /&gt;
char surname[100];&lt;br /&gt;
char add[100];&lt;br /&gt;
long ph;&lt;br /&gt;
struct link *next;&lt;br /&gt;
};&lt;br /&gt;
int x=0;&lt;br /&gt;
struct link *node;&lt;br /&gt;
void search(char ch[],struct link *n)&lt;br /&gt;
{&lt;br /&gt;
node=n - &amp;gt; next;&lt;br /&gt;
for(; node != NULL; node = node-&amp;gt;next)&lt;br /&gt;
{&lt;br /&gt;
if(strcmp(node-&amp;gt; name,ch)==0)&lt;br /&gt;
{&lt;br /&gt;
x++;&lt;br /&gt;
printf("Surname is %s \n", node-&amp;gt;surname);&lt;br /&gt;
printf("Address  is %s \n",node-&amp;gt; add);&lt;br /&gt;
printf("Phone number is %ld \n",node-&amp;gt;ph);&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
if(x == 0)&lt;br /&gt;
printf("Item not found in the list \n");&lt;br /&gt;
}&lt;br /&gt;
void get(struct link *n)&lt;br /&gt;
{&lt;br /&gt;
char ch='y';&lt;br /&gt;
node=n;&lt;br /&gt;
while(ch !='n')&lt;br /&gt;
{&lt;br /&gt;
node-&amp;gt;next = (struct link* ) malloc (sizeof (struct link));&lt;br /&gt;
node = node-&amp;gt;next;&lt;br /&gt;
node-&amp;gt;next =NULL;&lt;br /&gt;
printf("\n Enter the name: -");&lt;br /&gt;
scanf("%s",node-&amp;gt;name);&lt;br /&gt;
printf("\n Enter the surname: -");&lt;br /&gt;
scanf("%s",node-&amp;gt;surname);&lt;br /&gt;
printf("\n Enter the address: -");&lt;br /&gt;
scanf("%s",node-&amp;gt;add);&lt;br /&gt;
printf("\n Enter the Telephone number: -");&lt;br /&gt;
scanf("%ld",&amp;amp;node-&amp;gt;ph);&lt;br /&gt;
printf("\n Input choice n for break: ");&lt;br /&gt;
ch = getche();&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
struct link *start=NULL;&lt;br /&gt;
char name[15];&lt;br /&gt;
clrscr();&lt;br /&gt;
get(start);&lt;br /&gt;
printf("\nEnter the name to search :");&lt;br /&gt;
scanf("%s",name);&lt;br /&gt;
search(name,start);&lt;br /&gt;
getch();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Insertion in a linked list  using C Programming Language&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A linked list is a dynamic data structure. The number of nodes in a linked list may vary dramatically as elements are inserted or removed from a list. If a list grows ,there must be some mechanism for obtaining empty node. Unlike array , list does not come with a pre supplied set of storage locations.&lt;br /&gt;
&lt;br /&gt;
# include  &amp;lt; stdio.h &amp;gt;&lt;br /&gt;
# include &amp;lt; malloc.h &amp;gt;&lt;br /&gt;
struct link&lt;br /&gt;
{&lt;br /&gt;
int info;&lt;br /&gt;
struct link *next;&lt;br /&gt;
};&lt;br /&gt;
int i;&lt;br /&gt;
int number;&lt;br /&gt;
struct link *list=NULL, *P=NULL, *new1;&lt;br /&gt;
void create(struct link *n)&lt;br /&gt;
{&lt;br /&gt;
char ch;&lt;br /&gt;
list=n;&lt;br /&gt;
printf("\nEnter the value :-");&lt;br /&gt;
scanf("%d",&amp;amp;list-&amp;gt;info);&lt;br /&gt;
list-&amp;gt;next=NULL;&lt;br /&gt;
printf("\n Input choice n for break: ");&lt;br /&gt;
ch = getche();&lt;br /&gt;
i = 1;&lt;br /&gt;
while(ch != 'n')&lt;br /&gt;
{&lt;br /&gt;
list-&amp;gt;next = (struct link* ) malloc(sizeof(struct link));&lt;br /&gt;
list = list-&amp;gt;next;&lt;br /&gt;
printf("\n Input the node: %d: ", (i+1));&lt;br /&gt;
scanf("%d", &amp;amp;list-&amp;gt;info);&lt;br /&gt;
list-&amp;gt;next = NULL;&lt;br /&gt;
printf("\n Input choice n for break: ");&lt;br /&gt;
ch = getche();&lt;br /&gt;
i++;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
void insertion(struct link *n)&lt;br /&gt;
{&lt;br /&gt;
list=n;&lt;br /&gt;
new1 = (struct link* ) malloc(sizeof(struct link));&lt;br /&gt;
printf("\n Input the fisrt node value: ");&lt;br /&gt;
scanf("%d", &amp;amp;new1-&amp;gt;info);&lt;br /&gt;
P=new1;&lt;br /&gt;
new1-&amp;gt;next=n;&lt;br /&gt;
list=P;&lt;br /&gt;
printf("\nNow displaying the current linked list:-\n");&lt;br /&gt;
while(list)&lt;br /&gt;
{&lt;br /&gt;
printf("%d\n",list-&amp;gt;info);&lt;br /&gt;
list=list-&amp;gt;next;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
struct link *node = (struct link *) malloc(sizeof(struct link));&lt;br /&gt;
clrscr();&lt;br /&gt;
create(node);&lt;br /&gt;
insertion(node);&lt;br /&gt;
getch();&lt;br /&gt;
}&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-6780430183793594363?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2ctQdN-WcQkgG13dPnxncfza1gI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2ctQdN-WcQkgG13dPnxncfza1gI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2ctQdN-WcQkgG13dPnxncfza1gI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2ctQdN-WcQkgG13dPnxncfza1gI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/dbO3SyotRTY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/6780430183793594363/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2012/02/link-list-using-c.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/6780430183793594363?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/6780430183793594363?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/dbO3SyotRTY/link-list-using-c.html" title="Link List using C" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2012/02/link-list-using-c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MFQHw_fCp7ImA9WhRbGE4.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-218417366657274410</id><published>2012-02-10T05:20:00.000+05:30</published><updated>2012-02-10T05:20:11.244+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-10T05:20:11.244+05:30</app:edited><title>Binary Search Using C Language</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;If in an array, the
elements are placed in some order, for example a dictionary then there is an
efficient searching algorithm, &lt;b&gt;Binary search&lt;/b&gt;. In binary search the array will
be reduced to small sub arrays while searching the element. Suppose we are
searching an element N from an array ARR. First search for N at the middle of
the array. If found then your searching is completed, otherwise check whether N
is greater than or less than the middle value of the array. If less, then
repeat the above process with first half the array otherwise repeat with the
right half the array. This process will continue.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;#include &amp;lt; stdio.h&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;int bS(int target,int
value[],int size)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; int mid,low=0,hi=size-1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; while(low&amp;lt;=hi)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mid=(low+hi)/2;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp; if(target &amp;gt; value [mid])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp; low=mid+1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp; else if(target&amp;lt; value[mid])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp; hi=mid-1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp; else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp; break;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; printf("\After executing the loop ,
mid=%d, value=%d, targer=%d",mid,value[mid],target);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; if(target==value[mid])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; return mid;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; return -1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;void main(void)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;int array[10] =
{2,5,8,12,14,34,36,39,49,59},x,i;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;clrscr();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;printf("\nThe values
are:-\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;for(x=0;x&amp;lt;10;x++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;printf( "%d
",array[x]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;printf("\nEnter the
value to be searched:-");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;scanf("%d",&amp;amp;i);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;x=bS(i,array,10);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;if(x!=-1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;printf("\nSearch
success,location is %d.",x);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;printf("\nSearch not
successful.");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;getch();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-218417366657274410?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1w8xZENTJWNeB9Ec1iTXFSZw2qI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1w8xZENTJWNeB9Ec1iTXFSZw2qI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1w8xZENTJWNeB9Ec1iTXFSZw2qI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1w8xZENTJWNeB9Ec1iTXFSZw2qI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/NPUOG6YeCbs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/218417366657274410/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2012/02/binary-search-using-c-language.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/218417366657274410?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/218417366657274410?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/NPUOG6YeCbs/binary-search-using-c-language.html" title="Binary Search Using C Language" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2012/02/binary-search-using-c-language.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04DRX4ycCp7ImA9WhRUF0w.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-1455117775246805810</id><published>2012-01-28T06:20:00.002+05:30</published><updated>2012-01-28T06:22:54.098+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-28T06:22:54.098+05:30</app:edited><title>Inserting Sort in C Language – Program, Algorithm and Time Complexity</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&lt;b&gt;In this sorting technique&lt;/b&gt;,
the elements are scanned from left to right and insert each element in its
proper location in the previously sorted list. So in an array Arr&amp;nbsp; of n number of elements Arr[1] is assumed to
be sorted. Then in the second iteration Arr[2] is inserted either before Arr[1]
or after Arr[1] so that Arr[1] and Arr[2] are sorted. Similarly Arr[3] will be
inserted either before Arr[1] , after Arr[3] or between Arr[1] and Arr[2] and
so on. Now the problem is , where to insert Arr[x] in an sorted sub-array. This
can be achieved by comparing Arr[x] with Arr[x-1] , Arr[x-2],Arr[x-3] and so on
until it meets a value that less than or equal to Arr[x].Suppose Arr[j] is such
value. Then Arr[x] will be positioned at Arr[j+1] location and all elements
with which Arr[x] was compared will move forward by one location. From the
above it is clear that there must be always an element Arr[j] such that
Arr[j]&amp;lt;=Arr[x].So always put some small number say 0 in Arr[0] so that the
above condition will be useful.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;# include &amp;nbsp;&amp;lt; stdio.h&amp;gt;&lt;stdio.h&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/stdio.h&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;#define number 10&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;/* actually 11 values will
be inserted in this array, value in the 0 index being a small value (0)*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;void iS(int arr[], int n)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;int p,temp,i,k,x;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;arr[0] = 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;for(i = 1 ; i &amp;lt;= n;
i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;x=0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;p= i -1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;temp = arr[i];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;/* In the iteration of the
loop 'p' is 0 and 'i' is 1.So 'temp' will be the second element of the array ,
means the first valid value of the array while 'arr[p]' will be the smallest
value (-0).So in the first iteration there will be no interchange of values. */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;while(temp &amp;lt; arr[p])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; arr[p+1] = arr[p];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; p --;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; x++;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;/* In the second iteration,'arr[i]'
means the second valid value while 'arr[p]' is the value of the previous
location.The loop will continue to search the location for 'temp' if 'temp' is
less than its previous value and during this process the greater values will be
shifted one location right until the specific value 'temp' becomes equal to or
greater than its previous value. At the end set 'temp' in its proper location
with the statement 'arr[p+1]=temp' */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;arr[p+1] = temp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;printf("Step(%d):-",
i);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;for(k = 1; k &amp;lt;= n; k++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;printf(" %d",
arr[k]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;if(x!=0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;printf("-- took %d
comparisions to place %d.",x,temp);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;printf("--No
interchange of position for %d.",temp);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;printf("\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;void display(int arr[],
int n)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;int i;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;printf("\n Sorted
list is as follows\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;for(i = 1; i &amp;lt;= n; i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;printf(" %d",
arr[i]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;void main()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;int list[20];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;int i;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;clrscr();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;printf("\n Number of
elements in the list: %i", number);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;printf("\n Enter ten
values:-\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;for(i = 1; i &amp;lt;= number;
i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;scanf("%d",&amp;amp;list[i]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;printf("\n Step wise
result is as follows \n\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;iS(list,number);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;display(list, number);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;getch();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&lt;b&gt;Insertion sort program without
any extra location&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;#include &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;void ins(int arr[],int n)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;int i,j,k,t,flag;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;for(i=1;i&amp;lt; n;i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; k=0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; flag=0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; while(1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; if(i&amp;lt; k)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; break;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; /* means there is no smaller&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12pt;"&gt;value at left side of the value positioned
at location 'i'*/&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;if(arr[i]&amp;lt; arr[k])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; t=arr[k];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; arr[k]=arr[i];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; /* take the value to be shifted right side in
't' and insert&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12pt;"&gt;the value of location 'i' at the location 'k'
*/&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; flag=1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; if(flag==1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; for(j=i;j&amp;gt;k+1;j--)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arr[j]=arr[j-1];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* this shifts the values in the right ward
direction */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; arr[j]=t;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; /* positioning the value lifted from the
left side to just&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12pt;"&gt;right of it */&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; k++;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; /* trying with next value */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; if(flag==1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; break;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; /* in case of shifting, try with another
value */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; void main()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i,arr[10];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; clrscr();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;10;i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nValue=");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scanf("%d",&amp;amp;arr[i]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nBEFORE SORTING\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;10;i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("%4d",arr[i]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ins(arr,10);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nAFTER SORTING\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;10;i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("%4d",arr[i]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; getch();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&lt;b&gt;Algorithm of Insertion
Sort&lt;/b&gt;&lt;u&gt; &lt;/u&gt;:- ARR is an array which holds N+1 number of values.ARR[0] is made
to store a very small value , so actual values stored in the array is N.TEMP is
a variable which will help to interchange values while required. I is loop
control variable. P is another variable.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;Repeat the following steps
for I=1,2,3…N&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;Set TEMP=ARR[I] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;Set P=I-1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;While TEMP &amp;lt; ARR[P]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;Set ARR[P+1]=ARR[P]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;Set P=P-1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;[End of inner loop]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;Set ARR[P]=TEMP&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;[End of outer loop]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;End&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&lt;b&gt;Complexity of insertion
sort&lt;/b&gt;&lt;u&gt;&lt;b&gt;: &lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;In worst case while the
list is arranged in reversed order, the inner loop will make k-1 comparisons to
set the value of kth position in its actual location. So the time complexity
f(x)=1+2+3+….+(n-1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;=n(n-1)/2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;=O(n2) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;In average case, there
will be approximately (k-1)/2 comparisons for each element to set the value in its
position. So f(x)=1/2+2/2+3/2+……(n-1)/2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;= n(n-1)/4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12pt;"&gt;&amp;nbsp;=O(n2)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-1455117775246805810?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yMFgWq9h3B-l8ciaEER7d1BOSRg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yMFgWq9h3B-l8ciaEER7d1BOSRg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yMFgWq9h3B-l8ciaEER7d1BOSRg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yMFgWq9h3B-l8ciaEER7d1BOSRg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/uurGZNr3yEs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/1455117775246805810/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2012/01/inserting-sort-in-c-language-program.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/1455117775246805810?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/1455117775246805810?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/uurGZNr3yEs/inserting-sort-in-c-language-program.html" title="Inserting Sort in C Language – Program, Algorithm and Time Complexity" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2012/01/inserting-sort-in-c-language-program.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4GR389cCp7ImA9WhRVFE0.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-6573478882689206578</id><published>2012-01-13T04:08:00.000+05:30</published><updated>2012-01-13T04:08:46.168+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-13T04:08:46.168+05:30</app:edited><title>Selection Sort Using C Language and Its’ Algorithm &amp; Complexity</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;In &lt;b&gt;selection sort&lt;/b&gt; the list
is traversed first time from the start to end and the lowest value is
positioned in the first position. So that A[0]&amp;lt;=A[1].After that the list is
traversed from A[1] to A[N] and the second lowest value is placed in A[1] so
that the list will be A[0]&amp;lt;=A[1]&amp;lt;=A[2] and so on. N number of values will
be sorted after (N-1) number of passes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;If the series is :-&amp;nbsp; 77&amp;nbsp;
33&amp;nbsp;&amp;nbsp; 44&amp;nbsp; 11&amp;nbsp; 88&amp;nbsp;&amp;nbsp; 22&amp;nbsp;
66&amp;nbsp; 55&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;After 1st pass&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;
77&amp;nbsp;&amp;nbsp; 44&amp;nbsp;&amp;nbsp; 33&amp;nbsp; 88&amp;nbsp;&amp;nbsp; 22&amp;nbsp;
66&amp;nbsp; 55&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;After 2nd&amp;nbsp; pass&amp;nbsp;&amp;nbsp;&amp;nbsp;
11&amp;nbsp; 22&amp;nbsp;&amp;nbsp; 77&amp;nbsp;&amp;nbsp;
44&amp;nbsp; 88&amp;nbsp;&amp;nbsp; 33&amp;nbsp;
66&amp;nbsp; 55&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;After 3nd pass&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;
22&amp;nbsp;&amp;nbsp; 33&amp;nbsp;&amp;nbsp; 77&amp;nbsp; 88
&amp;nbsp;&amp;nbsp;44&amp;nbsp;
66&amp;nbsp; 55&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;After 4rth pass&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;
22&amp;nbsp;&amp;nbsp; 33&amp;nbsp;&amp;nbsp; 44&amp;nbsp; 88&amp;nbsp;&amp;nbsp; 77&amp;nbsp;
66&amp;nbsp; 55&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;After 5th Pass&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;
22&amp;nbsp;&amp;nbsp; 33&amp;nbsp;&amp;nbsp; 44&amp;nbsp; 55&amp;nbsp;&amp;nbsp; 88&amp;nbsp;
77&amp;nbsp; 66&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;After 6th Pass&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;
22&amp;nbsp;&amp;nbsp; 33&amp;nbsp;&amp;nbsp; 44&amp;nbsp; 55&amp;nbsp;&amp;nbsp; 66&amp;nbsp;
77&amp;nbsp; 88&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;After 7th Pass&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp;
22&amp;nbsp;&amp;nbsp; 33&amp;nbsp;&amp;nbsp; 44&amp;nbsp; 55&amp;nbsp;&amp;nbsp; 66&amp;nbsp;
77&amp;nbsp; 88&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&lt;b&gt;Complexity of Selection Sort&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;There are (N-1) numbers of
comparisons in the first pass, (N-2) number of comparisons in the second pass
and so on. So there will be 1 comparison in the last pass.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;So time complexity f(x) =
(N-1) + (N-2) + (N-3) +…. +2+1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;= N (N-1)/2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;O (N2)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;In both worst case and
average case the complexity is O (N2)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&lt;b&gt;Algorithm for Selection Sort:-&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;Arr represents the array
of values where N is the number of elements in the array. I and J are two
integer type variables. Set initial value 0 in Temp is an integer variable,
will help to interchange values.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;Repeat the following steps
while I&amp;lt; N &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;Set J=I+1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;Repeat the following steps
while J&amp;lt; N&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;If&amp;nbsp; Arr[I]&amp;gt;Arr[J]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;Temp=Arr[I]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;Arr[I]=Arr[J]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;Arr[J]=Temp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;[End of If body]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;J=J+1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;[End of the inner loop]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;I=I+1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;[End of the outer loop]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;Exit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&lt;o:p&gt;&lt;b&gt;C Language Program on Selection Sort&lt;/b&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;#include &amp;lt; stdio.h&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;void sS(int array[], int
size)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;int temp,i,j,x=0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;for (i= 0;i&amp;lt; size-1;i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;for (j =i+1;j&amp;lt; size;j++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; x++;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;if (array[i] &amp;gt;
array[j])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;temp = array[i];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;array[i] = array[j];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;array[j] = temp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; printf("\nNumber of passes
required:-%d",i-1);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; printf("\nTotal Number of
comparisions:-%d",x);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;void main()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;int
values[]={4,5,2,7,11,1}, i;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;clrscr();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;printf("\n Unsorted
list is as follows \n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;for (i = 0; i &amp;lt;6; i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp; printf(" %d",values[i]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;sS(values, 6);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;printf("\n Sorted
list is as follows \n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;for (i = 0; i &amp;lt; 6; i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;printf("%d ",
values[i]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;getch();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;Find the total number of comparisons
in &lt;b&gt;worst case for a selection sort&lt;/b&gt;:-&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 12.0pt;"&gt;Suppose there are N
numbers of values in an array. So the number of comparison in the first pass
will be (N-1), in the second pass it will be (N-2) and so on. So the number of comparisons
will be N (N-1)/2.If the number of elements is 6, then the number of comparisons
will be 6(6-1)/2, 6*5/2, 30/2, 15&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-6573478882689206578?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Egr5ryruydRwMxA85iZGCx48WzI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Egr5ryruydRwMxA85iZGCx48WzI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Egr5ryruydRwMxA85iZGCx48WzI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Egr5ryruydRwMxA85iZGCx48WzI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/_-vPnN19Tew" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/6573478882689206578/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2012/01/selection-sort-using-c-language-and-its.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/6573478882689206578?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/6573478882689206578?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/_-vPnN19Tew/selection-sort-using-c-language-and-its.html" title="Selection Sort Using C Language and Its’ Algorithm &amp; Complexity" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2012/01/selection-sort-using-c-language-and-its.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcGRXo7eyp7ImA9WhRXF0o.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-1469535755025565504</id><published>2011-12-25T05:43:00.000+05:30</published><updated>2011-12-25T05:43:44.403+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-25T05:43:44.403+05:30</app:edited><title>C Language program on Quick Sort with technical analysis and algorithm</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;&lt;b&gt;Quick sort&lt;/b&gt; is also known
as partition exchange sort. Let x be an array and there are n number of
elements in the array to be sorted. Choose an element a from a specific
position within the array - &lt;i&gt;a &lt;/i&gt;may be the first element of the array and
place &lt;i&gt;a&lt;/i&gt; in its appropriate position (suppose the location is j) of the
array such that the following conditions are true:-All the elements of the
array within 0 through j-1 is less than or equal to &lt;i&gt;a and a&lt;/i&gt;&lt;/span&gt;&lt;span style="font-size: 14pt;"&gt;ll the elements of the array within
j+1 through n-1 is greater than &lt;/span&gt;&lt;i style="font-size: 14pt;"&gt;a&lt;/i&gt;&lt;span style="font-size: 14pt;"&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;So the array is divided
into two partitions. The left part contains values less than or equal to &lt;i&gt;a &lt;/i&gt;while
the right part contains values greater than &lt;i&gt;a&lt;/i&gt;. suppose we have a list of
12 numbers like &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;44 33&amp;nbsp; 11&amp;nbsp;
55&amp;nbsp; 77&amp;nbsp; 90&amp;nbsp;
40&amp;nbsp; 60&amp;nbsp; 99&amp;nbsp;
22&amp;nbsp; 88&amp;nbsp; 66&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Let's start with the first
number 44. 44 will be placed in its actual location within the array.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Begin with the last number
66 and scan the list from right to left comparing each number with 44.When a
number less than 44 is found stop the scan and interchange the positions
between the numbers. Here in the list when 22 are reached the scan will stop
and 44 and 22 will interchange their positions. So the list will be as follows:-&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;22 33&amp;nbsp; 11&amp;nbsp;
55&amp;nbsp; 77&amp;nbsp; 90&amp;nbsp;
40&amp;nbsp; 60&amp;nbsp; 99&amp;nbsp;
44&amp;nbsp; 88&amp;nbsp; 66&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Note that all the values
at the right of 44 are greater than it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Next start scan from left
to right beginning with 22 and stop when a number greater than 44 is found.
Interchange their positions. Here in the left to right scan 55 is such a value
when the scan will be stoped.So the list at present will be:-&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;22 33&amp;nbsp; 11&amp;nbsp;
44&amp;nbsp; 77&amp;nbsp; 90&amp;nbsp;
40&amp;nbsp; 60&amp;nbsp; 99&amp;nbsp;
55&amp;nbsp; 88&amp;nbsp; 66&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Here also all the values
at the left of 44 is less than it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Next scan again from right
to left beginning at 55 and stop when a value less than 44 is found before 44
and then interchange their positions. So after this scan the list will be like:-&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;22 33&amp;nbsp; 11&amp;nbsp;
40&amp;nbsp; 77&amp;nbsp; 90&amp;nbsp;
44&amp;nbsp; 60&amp;nbsp; 99&amp;nbsp;
55&amp;nbsp; 88&amp;nbsp; 66&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Next left to right scan
beginning with 40 up to 44 will yield the list as:-&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;22 33&amp;nbsp; 11&amp;nbsp;
40&amp;nbsp; 44&amp;nbsp; 90&amp;nbsp;
77&amp;nbsp; 60&amp;nbsp; 99&amp;nbsp;
55&amp;nbsp; 88&amp;nbsp; 66&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Next scan starts with 77 -
from right to left without producing any result.44 is now placed in it actual
position and two sub lists are generated. Left sublist is at the left side of
44 and right sub list is at the right of 44.Any sub list containing at least
two values will be subjected to the above steps to produce the final result.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Start with 22&amp;nbsp; 33&amp;nbsp;
11&amp;nbsp; 40&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 33&amp;nbsp; 22&amp;nbsp; 40&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;next scan from left to
right upto 11 if any number greater that 22 is found , 33 is found -
interchange them&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 22&amp;nbsp; 33&amp;nbsp; 40&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scan from right to left to search less
value than 22 - not found so the sublist is in sorted order&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Next start with the second
sublist&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 77&amp;nbsp; 60&amp;nbsp; 99&amp;nbsp;
55&amp;nbsp; 88&amp;nbsp; 66&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;right scan &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;66 77&amp;nbsp; 60&amp;nbsp;
99&amp;nbsp; 55&amp;nbsp; 88&amp;nbsp; 90&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;left scan from 66&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;66&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 77&amp;nbsp; 60&amp;nbsp; 90&amp;nbsp;
55&amp;nbsp; 88&amp;nbsp; 99&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;left scan&amp;nbsp; from 88&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;66&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 77&amp;nbsp; 60&amp;nbsp; 88&amp;nbsp;
55&amp;nbsp; 90&amp;nbsp; 99&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;right scan from 55 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;66&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 77&amp;nbsp; 60&amp;nbsp; 55&amp;nbsp;
88&amp;nbsp; 90&amp;nbsp; 99&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;So 90 is in proper
position , right sublist contains only one element so the left sublist will be
needs sorting.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;66&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 77&amp;nbsp; 60&amp;nbsp; 55&amp;nbsp; 88&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;R-&amp;gt;L starting from 88&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;55&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 77&amp;nbsp; 60&amp;nbsp; 66&amp;nbsp; 88&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;L-&amp;gt;R upto 66&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;55 66&amp;nbsp; 60&amp;nbsp;
77&amp;nbsp; 88&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;R-&amp;gt;L 60 to 66&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;55&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60&amp;nbsp; 66&amp;nbsp; 77&amp;nbsp; 88&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;So the final list is
completed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;&lt;b&gt;Algorithm of Quick sort&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Procedure will be called
recursively until the array is completely sorted.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;QS(Arr,N,Start,End,Loc)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Here Arr is the array with
N number of elements. Start and End contains the lower and upper index value of
the array or sub list on which the procedure will work. Loc keeps track of the
position of the first value of the array sub list during execution. Two local
variables Left and Right will contain the boundary values of the sub list that
have not been scanned.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Set Left=Start&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Set Right=End&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Set Loc=Start&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;[Scan from right to left]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Repeat while Arr [Loc]
&amp;lt;=Arr [Right] and Loc! =Right&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Right=Right-1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;[End of loop]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;If Loc=Right &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Return&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;If Arr [Loc]&amp;gt;Arr [Right]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Interchange Arr [Loc] and Arr
[Right]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Set Loc=Right&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Go to left scan&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;[End of If block]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;[Scan from left to right]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Repeat while Arr [Left]
&amp;lt;=Arr [Loc] and Loc! =Left&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Left=Left+1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;[End of loop]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;If Loc=Left &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Return&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;If Arr [Left]&amp;gt;Arr [Loc]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Interchange Arr [Loc] and Arr
[Left]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Set Loc=Left&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Go to Right scan&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;[End of If block]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;This procedure will set
the first value of the array or sub list in its proper position.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;&lt;b&gt;Complexity of Quick sort algorithm&lt;/b&gt;:
- First consider the worst case. It occurs when the list is already sorted.
Suppose there is n number of elements in the array, so the list needs n number comparisons
to recognize that it remains at the proper location. Now the left sub list will
be empty and there will be (n-1) number of elements in the right sublist.So
(n-1) comparisons needed for this sub list again and so on. So the total number
of comparisons will be &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;n+ (n-1) + (n-2) +….2+1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;=n ((n+1)/2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;=n2/2+n/2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;O (n2)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;b&gt;Program on Quick Sort&lt;/b&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;#include &lt;stdio.h&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/stdio.h&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;#include &lt;stdlib.h&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/stdlib.h&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;void qS(int array[], int
first, int last)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;int temp, low, high,i,x;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;x=array[first];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;/*position of this element
will be fixed now */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;low = first;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;high = last;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;do&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;while (array[high] &amp;gt; x)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;&amp;nbsp;high--;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;&amp;nbsp;// right to left&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;while (array[low] &amp;lt; x)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;low++;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;// left to right&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;if (low &amp;lt;= high)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;temp = array[low];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;array[low++] =
array[high];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;array[high--] = temp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;} while (low &amp;lt;= high);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;printf("\n**\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;for(i=0;i&amp;lt;6;i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;printf("%d
",array[i]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;if (first &amp;lt; high)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;qS(array, first, high);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;if (low &amp;lt; last)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;qS(array, low, last);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;void main()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;int
values[]={3,2,6,5,4,8}, i;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;clrscr();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;printf("\n Unsorted
list is as follows \n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;for(i=0;i&amp;lt;6;i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;printf("%d
",values[i]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;qS(values,0,5);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;/*passing the lower bound
and upper bound as arguments.*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;printf("\n Sorted
list as follows\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;for (i = 0; i &amp;lt; 6; i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;printf("%d ",
values[i]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;getch();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Given a list of elements:
- 2&amp;nbsp; 51&amp;nbsp;
82&amp;nbsp; 12&amp;nbsp; 31&amp;nbsp;
14&amp;nbsp; 78 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Show the steps how the
list can be sorted using quick sort algorithm :-&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (51&amp;nbsp; 82&amp;nbsp; 12&amp;nbsp;
31&amp;nbsp; 14&amp;nbsp; 78&amp;nbsp;&amp;nbsp; )
right to left upto 2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (51&amp;nbsp;
82&amp;nbsp; 12&amp;nbsp; 31&amp;nbsp;
14&amp;nbsp; 78&amp;nbsp;&amp;nbsp; ) left to right upto 2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (14&amp;nbsp;
82&amp;nbsp; 12&amp;nbsp; 31&amp;nbsp;
51&amp;nbsp; 78 ) right to left upto 51&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&amp;nbsp;&amp;nbsp;
51&amp;nbsp; 12&amp;nbsp; 31&amp;nbsp;&amp;nbsp;
82&amp;nbsp; 78&amp;nbsp;&amp;nbsp;&amp;nbsp; left to right upto 51&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&amp;nbsp;&amp;nbsp;
31&amp;nbsp; 12&amp;nbsp; 51&amp;nbsp;&amp;nbsp; 82&amp;nbsp; 78&amp;nbsp;&amp;nbsp;&amp;nbsp;
right to left upto 51&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&amp;nbsp;&amp;nbsp;
31&amp;nbsp; 12&amp;nbsp; 51&amp;nbsp;&amp;nbsp;
82&amp;nbsp; 78&amp;nbsp;&amp;nbsp;&amp;nbsp; left to right upto 51&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;So 51 is now placed in
proper position&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Start with the left sub
list&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;14&amp;nbsp;&amp;nbsp; 31&amp;nbsp;
12&amp;nbsp; left to right&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;12&amp;nbsp;&amp;nbsp; 31&amp;nbsp;&amp;nbsp;
14&amp;nbsp;&amp;nbsp; right to left&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;12 is in proper position&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;31&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14 right to left&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31 left to right&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;So from left up to 51 the
list is as follows &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12 14&amp;nbsp; 31&amp;nbsp; 51&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;Now start with the right sub
list&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;81&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 78&amp;nbsp; right to left&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;78&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 81&amp;nbsp; left to right&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoBodyText3"&gt;
&lt;span style="font-size: 14.0pt;"&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12 14&amp;nbsp; 31&amp;nbsp; 51&amp;nbsp;
78&amp;nbsp; 82&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-1469535755025565504?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HZyp_x2RxxDjrJbPLSnyYZgJLDE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HZyp_x2RxxDjrJbPLSnyYZgJLDE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HZyp_x2RxxDjrJbPLSnyYZgJLDE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HZyp_x2RxxDjrJbPLSnyYZgJLDE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/Fy6RHrkSodY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/1469535755025565504/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/12/c-language-program-on-quick-sort-with.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/1469535755025565504?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/1469535755025565504?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/Fy6RHrkSodY/c-language-program-on-quick-sort-with.html" title="C Language program on Quick Sort with technical analysis and algorithm" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/12/c-language-program-on-quick-sort-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YGQ38_eyp7ImA9WhRRFU4.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-6607870744689327374</id><published>2011-11-29T07:15:00.000+05:30</published><updated>2011-11-29T07:15:22.143+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-29T07:15:22.143+05:30</app:edited><title>Sorting in C Language with algorithm</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;
&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Two very common activities in programs are &lt;b&gt;sorting information on some basis&lt;/b&gt; and &lt;b&gt;searching for particular item &lt;/b&gt;from a large body of data. The concept of an ordered set of elements is one that has considerable impact on our daily lives. Think of a telephone directory. Normally the names are listed in the directory in alphabetical order. This is known as sorted list. The process of finding a telephone number from the telephone directory is known as searching. It is easier to search a sorted list. Sorting can be defined as rearranging the data into a desired sequence based on some attribute of the data. It is a very tedious process because it can result into a massive reshuffling of the datas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;There are &lt;b&gt;different sorting algorithms&lt;/b&gt;. There are several points to keep in mind when deciding on a sorting algorithm for a particular task. For example an algorithm may be very easy to implement but is slow while working on large volume of data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;b&gt;Bubble Sort&lt;/b&gt;:- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;b style="font-size: 16px;"&gt;&amp;nbsp;This sorting technique is easy to implement&lt;/b&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;but not very efficient. The basic technique of bubble sort is to pass through the values sequentially several times .During each pass each element of the list or array will be compared with its successor&amp;nbsp; (A[i] with A[i+1]) and the values will be interchanged if they are not in proper position [ depending on the order , ascending&amp;nbsp; or descending ].Consider the following values are to be sorted in ascending order :- 25&amp;nbsp; 57&amp;nbsp; 48&amp;nbsp; 37&amp;nbsp; 12&amp;nbsp; 92&amp;nbsp; 86&amp;nbsp; 33 . The following operations are to be performed in the first pass.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Compare&amp;nbsp; A[0]&amp;nbsp; with A[1] -------- No interchanged&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp; -- do --&amp;nbsp; A[1]&amp;nbsp;&amp;nbsp; with A[2]--------- Intechange&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp; -- do --&amp;nbsp; A[2]&amp;nbsp;&amp;nbsp; with A[3]--------- Intechange&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp; -- do --&amp;nbsp; A[3]&amp;nbsp;&amp;nbsp; with A[4]--------- Intechange&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp; -- do --&amp;nbsp; A[4]&amp;nbsp;&amp;nbsp; with A[5]--------- No intechange&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp; -- do --&amp;nbsp; A[5]&amp;nbsp;&amp;nbsp; with A[6]--------- Intechange&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp; -- do --&amp;nbsp; A[6]&amp;nbsp;&amp;nbsp; with A[7]--------- Intechange&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;So after the first pass the array is in the order :- 25&amp;nbsp; 48&amp;nbsp; 37&amp;nbsp; 12&amp;nbsp; 57&amp;nbsp; 86&amp;nbsp; 33&amp;nbsp; 92&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;After the first pass we find that the largest number 92 is placed in the last position of the array. After the second pass we will find that the second large number is placed just before 92 and this process will continue. Since each iteration will place a new value in its proper position, if there is n number of values then the number of iteration or number of passes will be n-1 times. So the position of the array after each pass will be as follows:-&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Original: - 25&amp;nbsp; 57&amp;nbsp; 48&amp;nbsp; 37&amp;nbsp; 12&amp;nbsp; 92&amp;nbsp; 86&amp;nbsp; 33&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Pass 1:-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 25&amp;nbsp; 48&amp;nbsp; 37&amp;nbsp; 12&amp;nbsp; 57&amp;nbsp; 86&amp;nbsp; 33&amp;nbsp; 92&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Pass 2:-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 25&amp;nbsp; 37&amp;nbsp; 12&amp;nbsp; 48&amp;nbsp; 57&amp;nbsp; 33&amp;nbsp; 86&amp;nbsp; 92&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Pass 3:-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 25&amp;nbsp; 12&amp;nbsp; 37&amp;nbsp; 48&amp;nbsp; 33&amp;nbsp; 57&amp;nbsp; 86&amp;nbsp; 92&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Pass 4:-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp; 25&amp;nbsp; 37&amp;nbsp; 33&amp;nbsp; 48&amp;nbsp; 57&amp;nbsp; 86&amp;nbsp; 92&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Pass 5:-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp; 25&amp;nbsp; 33&amp;nbsp; 37&amp;nbsp; 48&amp;nbsp; 57&amp;nbsp; 86&amp;nbsp; 92&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Pass 6:-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp; 25&amp;nbsp; 33&amp;nbsp; 37&amp;nbsp; 48&amp;nbsp; 57&amp;nbsp; 86&amp;nbsp; 92&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Pass 7:-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp; 25&amp;nbsp; 33&amp;nbsp; 37&amp;nbsp; 48&amp;nbsp; 57&amp;nbsp; 86&amp;nbsp; 92&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;From the above chart it is clear that the values were positioned properly in the 5th iteration , still Pass 6 and Pass 7 took place without any effect.Such iterations can be stoped by determining whether any interchange of values took place in a given iteration. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Pseudocode algorithm of a bubble sort an array in descending order is as follows :-&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;N represents the number of elements in the array LIST.I and J are two integer type variables with initial value on I is 0.TEMP is another integer type variable.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Repeat through the following steps while(I&amp;lt; N)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Set J=0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Repeat through the following steps while(J&amp;lt; N-1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;If&amp;nbsp; (LIST[J] &amp;gt; LIST[J+1])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Set TEMP=LIST[J]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Set LIST[J]=LIST[J+1]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Set LIST[J+1]=TEMP&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;[end of if block]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Set J=J+1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;[end of inner loop]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Set I=I+1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;[end of outer loop]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Exit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;b&gt;From the above algorithm&lt;/b&gt; it is clear that there are N-1 passes and on each pass there are N-1 comparisions.So the total number of comparisons is (N-1)*(N-1) =N2-2N+1.So we can say that the time complexity of the above algorithm is O(N2). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;If the algorithm were so designed that when there is no exchange of values in a pass, the iterations will be stopped and the values are inserted in the array in complete sorted order then there will be only one pass of N-1 comparisons. So in this best case the complexity will be O(N).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;#include &amp;lt; stdio.h&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;void sort(int array[], int size)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int temp, i, j;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;for (i = 0; i &amp;lt; size; i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;for (j = 0; j &amp;lt; size-1; j++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;if (array[j] &amp;gt; array[j+1])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;temp = array[j];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;array[j] = array[j+1];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;array[j+1] = temp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;void main()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int values[30], i;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;clrscr();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n Unsorted list is as follows\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;for (i = 0; i &amp;lt; 5; i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nEnter any integer value :-");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;scanf("%d",&amp;amp;values[i]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;sort(values, 5);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n Sorted list is as follows\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;for (i = 0; i &amp;lt; 5; i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("%d ", values[i]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;getch();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-6607870744689327374?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/auOhbMGkXJ9H19257eNRj7mIggU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/auOhbMGkXJ9H19257eNRj7mIggU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/auOhbMGkXJ9H19257eNRj7mIggU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/auOhbMGkXJ9H19257eNRj7mIggU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/zklc0ZEfMXQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/6607870744689327374/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/11/sorting-in-c-language-with-algorithm.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/6607870744689327374?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/6607870744689327374?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/zklc0ZEfMXQ/sorting-in-c-language-with-algorithm.html" title="Sorting in C Language with algorithm" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/11/sorting-in-c-language-with-algorithm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YNQXkycSp7ImA9WhRSFE0.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-5588940168207673180</id><published>2011-11-16T07:36:00.002+05:30</published><updated>2011-11-16T07:36:30.799+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-16T07:36:30.799+05:30</app:edited><title>Program on Circular queue</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;
&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;A &lt;b&gt;queue is called circular&lt;/b&gt; when the last node comes just before the first node in case of&amp;nbsp; queue implementation of linked list.There may a header node at the front.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;# include &amp;lt; stdio.h&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;# include &amp;lt; stdlib.h&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;char info[20];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *p,*node,*new1,*start=NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int x=0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *insert(struct link *nn)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;if(x==0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;/*this will be a header node with no value in it's information part*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;fflush(stdin);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;new1 = (struct link *) malloc(sizeof(struct link));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;new1-&amp;gt;next=new1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;node=new1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;x++;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;x++;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;node = nn;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;p=start;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;new1 = (struct link *) malloc(sizeof(struct link));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;while(node-&amp;gt;next!=node)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;node=node-&amp;gt;next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;p=p-&amp;gt;next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;p-&amp;gt;next=new1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;new1-&amp;gt;next=node;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;fflush(stdin);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n Input the node value: ");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;gets(new1-&amp;gt;info);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;node=start-&amp;gt;next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;return node;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;void display(struct link *node)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;while (node-&amp;gt;next!=node)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf(" %s", node-&amp;gt;info);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;node = node-&amp;gt;next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *del(struct link *nn)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;node=nn;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;if(node==NULL)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nDeletion not possible.");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;p=node-&amp;gt;next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;free(node);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;node=p;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;return node;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;void main()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *start=NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int k = 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;char choice='i';&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;/* at the start of the program you must create a location*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;clrscr();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;do&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; if(x!=0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nInsert-&amp;gt;i Delete-&amp;gt;d Quit-&amp;gt;q:");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nInput the choice : ");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;do&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;choice = getchar();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;choice = tolower(choice);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}while(strchr("idq",choice)==NULL);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;printf("Your choice is: %c ", choice);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;/* end of the if block.At the first iteration of the do loop , no need to take choice from the user as firstly a node will be inserted as a header node. */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;switch(choice)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;case 'i' :&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; start=insert(start);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; if(x==1) /* after creating the header node x becomes 1*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nHeader node is created.");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nQueue after inserting ");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;display(start);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}/* no need to display when only the header node is created. */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;break;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;case 'd' :&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;start=del(start);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nQueue content after deleteion is as follows:\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;display(start);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;break;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;case 'q':&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;k = 1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;} while(!k);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;getch();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-5588940168207673180?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/O8X2trjPy2h-CklnLEi0QnBuBi8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O8X2trjPy2h-CklnLEi0QnBuBi8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/O8X2trjPy2h-CklnLEi0QnBuBi8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O8X2trjPy2h-CklnLEi0QnBuBi8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/0Ny9J75140c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/5588940168207673180/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/11/program-on-circular-queue.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/5588940168207673180?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/5588940168207673180?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/0Ny9J75140c/program-on-circular-queue.html" title="Program on Circular queue" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/11/program-on-circular-queue.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMHQXY9eSp7ImA9WhRTFU4.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-1540566821046463891</id><published>2011-11-06T05:43:00.002+05:30</published><updated>2011-11-06T05:43:50.861+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-06T05:43:50.861+05:30</app:edited><title>Doubly linked list implementation of Queue</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;
&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;This is a program on queue using doubly linked list.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;# include&amp;lt; stdio.h&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;# include&amp;lt; stdlib.h&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int info;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *prev;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *p;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;void display(struct link *rec)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;while(rec != NULL)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf(" %d ",rec-&amp;gt;info);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;rec = rec-&amp;gt;next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *insert(struct link *node)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *xx,*new1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;xx=node;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;p=NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;new1 = (struct link *) malloc(sizeof(struct link));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;fflush(stdin);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nEnter the value: ");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;scanf("%d", &amp;amp;new1-&amp;gt;info);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;if (node == NULL)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;node-&amp;gt;next=new1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;new1-&amp;gt;prev=node;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;new1-&amp;gt;next=NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;node=new1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;while(xx)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;xx = xx-&amp;gt;next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;p=p-&amp;gt;next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;p-&amp;gt;next = new1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;new1-&amp;gt;prev = p;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;new1-&amp;gt;next = xx;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&amp;nbsp;return node;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct&amp;nbsp; link * del(struct link *rec)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *temp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;if(rec == NULL)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n Empty");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;temp = rec-&amp;gt;next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;rec-&amp;gt;next-&amp;gt;prev=temp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;free(rec);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;rec = temp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n After deletion the queue is as follows:\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;display(rec);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;if(rec&amp;nbsp; == NULL)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n Queue is empty");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;return rec;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int selection()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int choice;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;do&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n 1&amp;lt;-Push ");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n 2&amp;lt;-Pop");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n 3&amp;lt;-Quit");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n Input your choice :");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;scanf("%d", &amp;amp;choice);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;if(choice &amp;lt;1 || choice &amp;gt;3)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n Incorrect choice-&amp;gt; Try once again");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;} while(choice &amp;lt;1 || choice &amp;gt;3);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;return choice;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;void main()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *start ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int choice;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;clrscr();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;start = NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;do&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;choice = selection();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;switch(choice)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;case 1:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;start = insert(start);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n After insertion queue is as follows:\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;display(start);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;break;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;case 2:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;start = del(start);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;break;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;default :&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n End of session");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;} while(choice != 3);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;getch();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-1540566821046463891?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BDZzyL_9H3xbjMzEmW1pmWL5li8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BDZzyL_9H3xbjMzEmW1pmWL5li8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BDZzyL_9H3xbjMzEmW1pmWL5li8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BDZzyL_9H3xbjMzEmW1pmWL5li8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/wWYSHURk6kE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/1540566821046463891/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/11/doubly-linked-list-implementation-of.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/1540566821046463891?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/1540566821046463891?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/wWYSHURk6kE/doubly-linked-list-implementation-of.html" title="Doubly linked list implementation of Queue" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/11/doubly-linked-list-implementation-of.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04BQXY4cSp7ImA9WhdUGUk.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-382165977783378611</id><published>2011-10-07T06:42:00.000+05:30</published><updated>2011-10-07T06:42:30.839+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-07T06:42:30.839+05:30</app:edited><title>Linear Linked list implementation of Queue</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;
&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Here is the program on&lt;b&gt; linear linked list implementation of queue&lt;/b&gt; where insertion and deletion can be performed as required, no limit.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;# include &amp;lt; stdio.h&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;# include &amp;lt; stdlib.h&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;char info[20];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *p,*node,*new1,*start=NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *insert(struct link *nn)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;node = nn;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;p=NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;new1 = (struct link* ) malloc(sizeof(struct link));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;while(node)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;node=node-&amp;gt;next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;p=p-&amp;gt;next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;p-&amp;gt;next=new1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;new1-&amp;gt;next=node;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;fflush(stdin);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n Input the node value: ");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;gets(new1-&amp;gt;info);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;node=start-&amp;gt;next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;return node;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;void display(struct link *node)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;while (node)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf(" %s", node-&amp;gt;info);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;node = node-&amp;gt;next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *del(struct link *nn)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;node=nn;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;if(node==NULL)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nDeletion not possible.");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;p=node-&amp;gt;next;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;free(node);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;node=p;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;return node;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;void main()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;struct link *start=NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int k = 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;char choice;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;clrscr();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;do&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nInsert-&amp;gt;i Delete-&amp;gt;d Quit-&amp;gt;q:");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nInput the choice : ");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;do&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;choice = getchar();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;choice = tolower(choice);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}while(strchr("idq",choice)==NULL);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("Your choice is: %c ", choice);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;switch(choice)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;case 'i' :&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;start=insert(start);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nQueue after inserting ");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;display(start);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;break;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;case 'd' :&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;start=del(start);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nQueue content after deleteion is as follows:\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;display(start);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;break;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;case 'q':&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;k = 1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;} while(!k);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;getch();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-382165977783378611?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qXxx55-GCDBEu0d7Pjywqsa4od4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qXxx55-GCDBEu0d7Pjywqsa4od4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qXxx55-GCDBEu0d7Pjywqsa4od4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qXxx55-GCDBEu0d7Pjywqsa4od4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/8Y3Bg1J4OAU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/382165977783378611/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/10/linear-linked-list-implementation-of.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/382165977783378611?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/382165977783378611?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/8Y3Bg1J4OAU/linear-linked-list-implementation-of.html" title="Linear Linked list implementation of Queue" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/10/linear-linked-list-implementation-of.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4DRHo7fSp7ImA9WhdXGUg.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-7774730046137712325</id><published>2011-09-02T14:46:00.000+05:30</published><updated>2011-09-02T14:46:15.405+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-02T14:46:15.405+05:30</app:edited><title>Using array as a queue</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;
&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;A &lt;b&gt;Queue &lt;/b&gt;can be defined as an ordered collection of items&lt;span&gt;&amp;nbsp; &lt;/span&gt;where items are added at one end and items are deleted at the other end. Hence the first item added in a Queue is the first item to be deleted .For this reason Queue is called &lt;i&gt;fifo&lt;/i&gt; list. The end from which items are deleted in a Queue is called the&lt;i&gt; front &lt;/i&gt;of the Queue and the other end is called the&lt;b&gt; rear of the Queue&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;Items can be inserted, at the rear end of the queue , items can be deleted from the front end of the queue. Item insertion has no limit as the rear end can grow but deletion of items from a queue is possible only when there is item in the queue.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt; mso-bidi-font-style: italic;"&gt;Here is the program on queue&lt;/span&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;# include&amp;lt; stdio.h&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;# include&amp;lt; string.h&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;# define size 10&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int rear, front;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int ch;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int x;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int q[size];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;/* This array can work as a queue with maximum ten elements */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int rear = -1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;/* this variable will keep track of the elements inserted*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int front = -1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;/*&lt;i&gt;front&lt;/i&gt; will keep track of the elements deleted*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;void&lt;span&gt;&amp;nbsp; &lt;/span&gt;insert()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n Input the element :");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;scanf("%d", &amp;amp;ch);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;if(rear&amp;lt; size)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;/* &lt;i&gt;if&lt;/i&gt; block means insertion is possible.*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;rear ++;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;q[rear] = ch ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;if(front == -1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;front = 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;/* after inserting the first element, &lt;i&gt;front&lt;/i&gt; becomes 0 .So we can delete elements. */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n Can't grow more.");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;void &lt;st1:state w:st="on"&gt;&lt;st1:place w:st="on"&gt;del&lt;/st1:place&gt;&lt;/st1:state&gt;()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;x=0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;if (front == -1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n Underflow");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;ch = q[front];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;x=1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\n Element deleted : %d", ch);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;if(front == rear)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;/* &lt;i&gt;front&lt;/i&gt; and &lt;i&gt;rear&lt;/i&gt; will become same when all the inserted elements are deleted */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;front =-1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;rear = -1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;front = front + 1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;/* after deleting an element &lt;i&gt;front&lt;/i&gt; is incremented by 1 to access the next element.*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;void display()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int i;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;if (front == -1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;return;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;for(i = front ; i &amp;lt;= rear; i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf(" %d ", q[i]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;void main()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;int k = 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;char choice;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;clrscr();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;do&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nInsert-&amp;gt;i Delete-&amp;gt;d Quit-&amp;gt;q:");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nInput the choice : ");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;do&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;choice = getchar();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;choice = tolower(choice);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}while(strchr("idq",choice)==NULL);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("Your choice is: %c ", choice);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;switch(choice)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;case 'i' :&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;insert();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nQueue after inserting ");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;display();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;break;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;case 'd' :&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;st1:state w:st="on"&gt;&lt;st1:place w:st="on"&gt;&lt;span style="font-size: 12.0pt;"&gt;del&lt;/span&gt;&lt;/st1:place&gt;&lt;/st1:state&gt;&lt;span style="font-size: 12.0pt;"&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;if(x==1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;printf("\nQueue content after deletion is as follows:\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;display();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;break;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;case 'q':&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;k = 1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;} while(!k);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;getch();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;span style="font-size: 12.0pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoBodyText3"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-7774730046137712325?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wZfzvFx3t71ic-H8kwZBG0XcJrs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wZfzvFx3t71ic-H8kwZBG0XcJrs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wZfzvFx3t71ic-H8kwZBG0XcJrs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wZfzvFx3t71ic-H8kwZBG0XcJrs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/JM95zjmQRxA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/7774730046137712325/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/09/using-array-as-queue.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/7774730046137712325?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/7774730046137712325?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/JM95zjmQRxA/using-array-as-queue.html" title="Using array as a queue" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/09/using-array-as-queue.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AHQ3c_fSp7ImA9WhdQF0w.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-8849554576713861435</id><published>2011-08-19T07:38:00.000+05:30</published><updated>2011-08-19T07:38:52.945+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-19T07:38:52.945+05:30</app:edited><title>Program on entering infix expression and evaluation of the expression after converting in postfix using stack</title><content type="html">Here in this program the user will enter an infix expression , the infix will be displayed in postfix notation and the evaluated value of the postfix notation will be displayed.&lt;br /&gt;
&lt;br /&gt;
# include&lt; stdio.h&gt;&lt;br /&gt;
# include&lt; stdlib.h&gt;&lt;br /&gt;
struct link&lt;br /&gt;
{&lt;br /&gt;
	char ch;&lt;br /&gt;
	struct link *next;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/*This structure is defined to store the operators of the infix notation.The operands of the infix notation will be displayed  and the operators of the expression will be displayed according to precedence. functions push() , pop() , pop1() and pop2() are related with this staructure type stack */&lt;br /&gt;
&lt;br /&gt;
struct link *dd1=NULL,*dd2;&lt;br /&gt;
&lt;br /&gt;
/*these two external pointers will be used to store the postfix version of the expression in a stack.*/&lt;br /&gt;
&lt;br /&gt;
struct list&lt;br /&gt;
{&lt;br /&gt;
int num;&lt;br /&gt;
char ch;&lt;br /&gt;
struct list *next;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/*This structure will be used to store the operands of the converted postfix notation*/&lt;br /&gt;
&lt;br /&gt;
struct list *last=NULL;&lt;br /&gt;
struct  link * pop2(struct link *rec)&lt;br /&gt;
{&lt;br /&gt;
	char ch='a';&lt;br /&gt;
	struct link *temp;&lt;br /&gt;
	char x;&lt;br /&gt;
	while((ch!='(')&amp;&amp;(rec!=NULL))&lt;br /&gt;
	{&lt;br /&gt;
	x=rec-&gt;ch;&lt;br /&gt;
	if(x!='(')&lt;br /&gt;
	{&lt;br /&gt;
	dd2=(struct link *)malloc(sizeof(struct link));&lt;br /&gt;
	dd2-&gt;ch=x;&lt;br /&gt;
	dd2-&gt;next=dd1;&lt;br /&gt;
	dd1=dd2;&lt;br /&gt;
	/*operator stored in the stack for postfix evaluation*/&lt;br /&gt;
	printf("%c",x);&lt;br /&gt;
	/* operator is displayed for the postfix version*/&lt;br /&gt;
	}&lt;br /&gt;
	temp=rec-&gt;next;&lt;br /&gt;
	free(rec);&lt;br /&gt;
/*stack which contains the operators for postfix version shrinks as the operator is displayed.*/&lt;br /&gt;
	rec=temp;&lt;br /&gt;
	}&lt;br /&gt;
	return rec;&lt;br /&gt;
}&lt;br /&gt;
struct  link * pop(struct link *rec)&lt;br /&gt;
{&lt;br /&gt;
	if(rec != NULL)&lt;br /&gt;
	{&lt;br /&gt;
	struct link *temp;&lt;br /&gt;
	char x;&lt;br /&gt;
	x=rec-&gt;ch;&lt;br /&gt;
	if(x!='(')&lt;br /&gt;
	{&lt;br /&gt;
	dd2=(struct link *)malloc(sizeof(struct link));&lt;br /&gt;
	dd2-&gt;ch=x;&lt;br /&gt;
	dd2-&gt;next=dd1;&lt;br /&gt;
	dd1=dd2;&lt;br /&gt;
	printf("%c",x);&lt;br /&gt;
	}&lt;br /&gt;
	temp=rec-&gt;next;&lt;br /&gt;
	free(rec);&lt;br /&gt;
	rec=temp;&lt;br /&gt;
	}&lt;br /&gt;
	return rec;&lt;br /&gt;
}&lt;br /&gt;
struct  link * pop1(char z,struct link *rec)&lt;br /&gt;
{&lt;br /&gt;
	struct link *temp;&lt;br /&gt;
	char x;&lt;br /&gt;
	x=rec-&gt;ch;&lt;br /&gt;
     if(((x=='+')||(x=='-'))&amp;&amp;((z=='*')||(z=='/')||(z=='%')))&lt;br /&gt;
	{ &lt;br /&gt;
 &lt;br /&gt;
/*if the current operator has more precedence over the top item of the stack then no action should be taken , they should be kept in the stack as it is.Otherwise the last inserted item ( here operator) should be displayed ( from the else part).*/&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
       else&lt;br /&gt;
       {&lt;br /&gt;
       if(x!='(')&lt;br /&gt;
       {&lt;br /&gt;
	dd2=(struct link *)malloc(sizeof(struct link));&lt;br /&gt;
	dd2-&gt;ch=x;&lt;br /&gt;
	dd2-&gt;next=dd1;&lt;br /&gt;
	dd1=dd2;&lt;br /&gt;
	/*the operator is stored in the stack no 2 (for postfix evaluation)*/&lt;br /&gt;
	printf("%c",x);&lt;br /&gt;
	}&lt;br /&gt;
	temp=rec-&gt;next;&lt;br /&gt;
	free(rec);&lt;br /&gt;
	rec=temp;&lt;br /&gt;
	/* if the top item of the stack is displayed , the stack should shrink.*/&lt;br /&gt;
       }&lt;br /&gt;
	return rec;&lt;br /&gt;
}&lt;br /&gt;
struct link  *push(char c,struct link *rec)&lt;br /&gt;
{&lt;br /&gt;
       if(c==')')&lt;br /&gt;
       {&lt;br /&gt;
       //if clossing bracket is found , there must be a openning bracket with operator&lt;br /&gt;
	rec=pop2(rec);&lt;br /&gt;
       }&lt;br /&gt;
       if((rec!=NULL)&amp;&amp;(c!='('))&lt;br /&gt;
       {&lt;br /&gt;
&lt;br /&gt;
/*if the stack contains an operator and another operator is encountered, the operator which is of more precedence should be displayed.*/&lt;br /&gt;
&lt;br /&gt;
	rec=pop1(c,rec);&lt;br /&gt;
       }&lt;br /&gt;
       if(c!=')')&lt;br /&gt;
       {&lt;br /&gt;
       // from this block the current encountered operator is stored in the stack&lt;br /&gt;
       struct link *new1;&lt;br /&gt;
	new1 = (struct link *)malloc(sizeof(struct link));&lt;br /&gt;
	new1-&gt;ch=c;&lt;br /&gt;
	new1-&gt;next = rec;&lt;br /&gt;
	rec = new1;&lt;br /&gt;
	}&lt;br /&gt;
	return rec;&lt;br /&gt;
}&lt;br /&gt;
struct list *push1(int i,struct list *node)&lt;br /&gt;
  {&lt;br /&gt;
  struct list *new1;&lt;br /&gt;
  new1=(struct list *)malloc(sizeof(struct list));&lt;br /&gt;
  new1-&gt;num=i;&lt;br /&gt;
  new1-&gt;next=node;&lt;br /&gt;
  node=new1;&lt;br /&gt;
  return node;&lt;br /&gt;
  }&lt;br /&gt;
struct list *pop3(struct list *node)&lt;br /&gt;
   {&lt;br /&gt;
   struct list *p;&lt;br /&gt;
   p=node-&gt;next;&lt;br /&gt;
   free(node);&lt;br /&gt;
    node=p;&lt;br /&gt;
    return node;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
void dis(struct link *node)&lt;br /&gt;
{&lt;br /&gt;
	int x,y,result;&lt;br /&gt;
	struct list *ds,*sta=NULL;&lt;br /&gt;
while(node)&lt;br /&gt;
{&lt;br /&gt;
ds=(struct list *)malloc(sizeof(struct list));&lt;br /&gt;
ds-&gt;ch=node-&gt;ch;&lt;br /&gt;
node=node-&gt;next;&lt;br /&gt;
ds-&gt;next=last;&lt;br /&gt;
last=ds;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* elements of the second stack are stored in another stack in reversed order whose top element is pointed by external pointer last.Now each element of the stack will be checked , if operand is found then it will be pushed in another stack , in case of operator the top two operands will be poped from  the stack and operation will be performed according to the operator and the result will be pushed back again in the stack.*/&lt;br /&gt;
&lt;br /&gt;
while(last)&lt;br /&gt;
{&lt;br /&gt;
 char c=last-&gt;ch;&lt;br /&gt;
 if(isdigit(c)!=0)&lt;br /&gt;
  sta=push1(c-48,sta);&lt;br /&gt;
  else&lt;br /&gt;
  {&lt;br /&gt;
  y=sta-&gt;num;&lt;br /&gt;
    sta=pop3(sta);&lt;br /&gt;
     x=sta-&gt;num;&lt;br /&gt;
    sta=pop3(sta);&lt;br /&gt;
     switch(c)&lt;br /&gt;
   {&lt;br /&gt;
&lt;br /&gt;
/*from here the result is calculated as per the operator and the result is pushed back into  the stack*/&lt;br /&gt;
&lt;br /&gt;
    case '+':&lt;br /&gt;
    {&lt;br /&gt;
     result=(x+y);&lt;br /&gt;
     sta=push1(result,sta);&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
      case '-':&lt;br /&gt;
    {&lt;br /&gt;
     result=(x-y);&lt;br /&gt;
      sta=push1(result,sta);&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
     case '*':&lt;br /&gt;
    {&lt;br /&gt;
     result=(x*y);&lt;br /&gt;
      sta=push1(result,sta);&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
     case '/':&lt;br /&gt;
    {&lt;br /&gt;
     result=(x/y);&lt;br /&gt;
      sta=push1(result,sta);&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
   }&lt;br /&gt;
   }&lt;br /&gt;
   last=last-&gt;next;&lt;br /&gt;
&lt;br /&gt;
/* pointer last which is traversing the stack containg the postfix version in reversed order     moves to the next node.*/&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
/* when all the operations are performed , the final stack contains only one item , the  result.*/&lt;br /&gt;
&lt;br /&gt;
     printf("\n*****\nResult of the expression is::%d",sta-&gt;num);&lt;br /&gt;
   }&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
	struct link *start;&lt;br /&gt;
	int i=0;&lt;br /&gt;
	 char ch='a';&lt;br /&gt;
	clrscr();&lt;br /&gt;
	start = NULL;&lt;br /&gt;
	printf("\nEnter the expression:-");&lt;br /&gt;
       while(ch!='\n')&lt;br /&gt;
     {&lt;br /&gt;
       ch=getchar();&lt;br /&gt;
       if((ch=='+')||(ch=='-')||(ch=='*')||(ch=='/')||(ch=='(')||&lt;br /&gt;
       (ch=='%')||(ch==')'))&lt;br /&gt;
       {&lt;br /&gt;
&lt;br /&gt;
/* when operators are encountered ,push method is called with the character and structure pointer as argument. current stack will be returned. */&lt;br /&gt;
&lt;br /&gt;
	 start=push(ch,start);&lt;br /&gt;
	i++;&lt;br /&gt;
       }&lt;br /&gt;
       else&lt;br /&gt;
       {&lt;br /&gt;
       /* this block will be executed is the character read from the input is not an operator*/&lt;br /&gt;
&lt;br /&gt;
      if(ch!='\n')&lt;br /&gt;
      {&lt;br /&gt;
       printf("%c",ch);&lt;br /&gt;
       /*operand in postfix version is displayed.*/&lt;br /&gt;
	dd2=(struct link *)malloc(sizeof(struct link));&lt;br /&gt;
	dd2-&gt;ch=ch;&lt;br /&gt;
	dd2-&gt;next=dd1;&lt;br /&gt;
	dd1=dd2;&lt;br /&gt;
	/* the operands are stored in stack no.2 (for postfix evaluation)*/&lt;br /&gt;
       }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
      while(i&gt;0)&lt;br /&gt;
       {&lt;br /&gt;
&lt;br /&gt;
   /* i counts the number of operators in the infix expression, although at present all the operators may not be present in the stack  but we should call the pop method to display the remaining operators in the stack( which are not displayed through pop1() or pop2() */&lt;br /&gt;
&lt;br /&gt;
       start=pop(start);&lt;br /&gt;
&lt;br /&gt;
/* every call to this function will display the top element of the stack and then the stack will be shrinked and returned so , before i becomes 0 start may point to NULL*/&lt;br /&gt;
&lt;br /&gt;
       i--;&lt;br /&gt;
       }&lt;br /&gt;
       dis(dd1);&lt;br /&gt;
&lt;br /&gt;
/*dis () function of the second structure is called to reverse the elements of the second stack where all the operators and operands are stored in postfix notation */&lt;br /&gt;
&lt;br /&gt;
	     getch();&lt;br /&gt;
}&lt;br /&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-8849554576713861435?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0gwdJntxzsRjT27wuB6l-mYfgss/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0gwdJntxzsRjT27wuB6l-mYfgss/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0gwdJntxzsRjT27wuB6l-mYfgss/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0gwdJntxzsRjT27wuB6l-mYfgss/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/H35UMLyVwOQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/8849554576713861435/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/08/program-on-entering-infix-expression.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/8849554576713861435?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/8849554576713861435?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/H35UMLyVwOQ/program-on-entering-infix-expression.html" title="Program on entering infix expression and evaluation of the expression after converting in postfix using stack" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/08/program-on-entering-infix-expression.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04MRnc9fyp7ImA9WhdTGU0.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-5963938379260244158</id><published>2011-07-17T18:03:00.000+05:30</published><updated>2011-07-17T18:03:07.967+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-17T18:03:07.967+05:30</app:edited><title>Evaluation of entered postfix expression using C data Structure</title><content type="html">In this program, enter any postfix expression , the expression will be evaluated and the result will be displayed (e.g if the entered expression is 889*-88*-  the result will display –128 )&lt;br /&gt;
&lt;br /&gt;
Here are the &lt;b&gt;codes of the program&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
# include &lt; stdio.h&gt;&lt;br /&gt;
# include &lt; stdlib.h&gt;&lt;br /&gt;
struct list&lt;br /&gt;
{&lt;br /&gt;
int num;&lt;br /&gt;
struct list *next;&lt;br /&gt;
};&lt;br /&gt;
struct list *push(int i,struct list *node)&lt;br /&gt;
  {&lt;br /&gt;
  struct list *new1;&lt;br /&gt;
  new1=(struct list *)malloc(sizeof(struct list));&lt;br /&gt;
  new1-&gt;num=i;&lt;br /&gt;
  new1-&gt;next=node;&lt;br /&gt;
  node=new1;&lt;br /&gt;
  return node;&lt;br /&gt;
  }&lt;br /&gt;
struct list *pop(struct list *node)&lt;br /&gt;
   {&lt;br /&gt;
   struct list *p;&lt;br /&gt;
   p=node-&gt;next;&lt;br /&gt;
   free(node);&lt;br /&gt;
    node=p;&lt;br /&gt;
    return node;&lt;br /&gt;
    }&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
struct list *start=NULL;&lt;br /&gt;
char c;&lt;br /&gt;
int x,y,result;&lt;br /&gt;
clrscr();&lt;br /&gt;
printf("\nEnter the expression:-");&lt;br /&gt;
while((c=getchar())!='\n')&lt;br /&gt;
{&lt;br /&gt;
 if(isdigit(c)!=0)&lt;br /&gt;
  start=push(c-48,start);&lt;br /&gt;
  else&lt;br /&gt;
  {&lt;br /&gt;
  y=start-&gt;num;&lt;br /&gt;
  start=pop(start);&lt;br /&gt;
   x=start-&gt;num;&lt;br /&gt;
  start=pop(start);&lt;br /&gt;
   switch(c)&lt;br /&gt;
   {&lt;br /&gt;
    case '+':&lt;br /&gt;
    {&lt;br /&gt;
     result=(x+y);&lt;br /&gt;
     start=push(result,start);&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
      case '-':&lt;br /&gt;
    {&lt;br /&gt;
     result=(x-y);&lt;br /&gt;
      start=push(result,start);&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
     case '*':&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
     result=(x*y);&lt;br /&gt;
      start=push(result,start);&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
     case '/':&lt;br /&gt;
    {&lt;br /&gt;
     result=(x/y);&lt;br /&gt;
      start=push(result,start);&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
   }&lt;br /&gt;
   }&lt;br /&gt;
    }&lt;br /&gt;
   printf("Result of the expression is::%d",start-&gt;num);&lt;br /&gt;
  getch();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
In this program the expression is taken as a string value and each character is checked whether it is digit or non digit. For digits, the element is pushed in a stack and for operators, two elements from the stack are popped from the stack. After evaluating the popped elements according to operator, the &lt;b&gt;result is again pushed on the stack&lt;/b&gt;. Ultimately, the stack contains one element and that is the result.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-5963938379260244158?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vwguFWTFeBqfoFybkeYWNg0ohjI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vwguFWTFeBqfoFybkeYWNg0ohjI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vwguFWTFeBqfoFybkeYWNg0ohjI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vwguFWTFeBqfoFybkeYWNg0ohjI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/nDbUXLH6_GE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/5963938379260244158/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/07/evaluation-of-entered-postfix.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/5963938379260244158?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/5963938379260244158?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/nDbUXLH6_GE/evaluation-of-entered-postfix.html" title="Evaluation of entered postfix expression using C data Structure" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/07/evaluation-of-entered-postfix.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MEQH07fyp7ImA9WhZUEUk.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-9203810969142838061</id><published>2011-06-04T04:20:00.000+05:30</published><updated>2011-06-04T04:20:01.307+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-04T04:20:01.307+05:30</app:edited><title>Conversion of infix to postfix expression</title><content type="html"># include&lt; stdio.h&gt;&lt;br /&gt;
# include&lt; stdlib.h&gt;&lt;br /&gt;
struct link&lt;br /&gt;
{&lt;br /&gt;
char ch;&lt;br /&gt;
struct link *next;&lt;br /&gt;
};&lt;br /&gt;
struct  link * pop2(struct link *rec)&lt;br /&gt;
{&lt;br /&gt;
char ch='a';&lt;br /&gt;
struct link *temp;&lt;br /&gt;
char x;&lt;br /&gt;
while((ch!='(')&amp;&amp;(rec!=NULL))&lt;br /&gt;
{&lt;br /&gt;
x=rec-&gt;ch;&lt;br /&gt;
if(x!='(')&lt;br /&gt;
printf("%c",x);&lt;br /&gt;
temp=rec-&gt;next;&lt;br /&gt;
free(rec);&lt;br /&gt;
rec=temp;&lt;br /&gt;
}&lt;br /&gt;
return rec;&lt;br /&gt;
}&lt;br /&gt;
struct  link * pop(struct link *rec)&lt;br /&gt;
{&lt;br /&gt;
if(rec != NULL)&lt;br /&gt;
{&lt;br /&gt;
struct link *temp;&lt;br /&gt;
char x;&lt;br /&gt;
x=rec-&gt;ch;&lt;br /&gt;
if(x!='(')&lt;br /&gt;
printf("%c",x);&lt;br /&gt;
temp=rec-&gt;next;&lt;br /&gt;
free(rec);&lt;br /&gt;
rec=temp;&lt;br /&gt;
}&lt;br /&gt;
return rec;&lt;br /&gt;
}&lt;br /&gt;
struct  link * pop1(char z,struct link *rec)&lt;br /&gt;
{&lt;br /&gt;
struct link *temp;&lt;br /&gt;
char x;&lt;br /&gt;
x=rec-&gt;ch;&lt;br /&gt;
if(((x=='+')||(x=='-'))&amp;&amp;((z=='*')||(z=='/')||(z=='%')))&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
if(x!='(')&lt;br /&gt;
printf("%c",x);&lt;br /&gt;
temp=rec-&gt;next;&lt;br /&gt;
free(rec);&lt;br /&gt;
rec=temp;&lt;br /&gt;
}&lt;br /&gt;
return rec;&lt;br /&gt;
}&lt;br /&gt;
struct link  *push(char c,struct link *rec)&lt;br /&gt;
{&lt;br /&gt;
if(c==')')&lt;br /&gt;
{&lt;br /&gt;
rec=pop2(rec);&lt;br /&gt;
}&lt;br /&gt;
if((rec!=NULL)&amp;&amp;(c!='('))&lt;br /&gt;
{&lt;br /&gt;
rec=pop1(c,rec);&lt;br /&gt;
}&lt;br /&gt;
if(c!=')')&lt;br /&gt;
{&lt;br /&gt;
struct link *new1;&lt;br /&gt;
new1 = (struct link *)malloc(sizeof(struct link));&lt;br /&gt;
new1-&gt;ch=c;&lt;br /&gt;
new1-&gt;next = rec;&lt;br /&gt;
rec = new1;&lt;br /&gt;
}&lt;br /&gt;
return rec;&lt;br /&gt;
}&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
struct link *start ;&lt;br /&gt;
int i=0;&lt;br /&gt;
 char ch='a';&lt;br /&gt;
clrscr();&lt;br /&gt;
start = NULL;&lt;br /&gt;
printf("\nEnter the expression:-");&lt;br /&gt;
while(ch!='\n')&lt;br /&gt;
{&lt;br /&gt;
 ch=getchar();&lt;br /&gt;
 if((ch=='+')||(ch=='-')||(ch=='*')||(ch=='/')||(ch=='(')||(ch=='%')||(ch==')'))&lt;br /&gt;
 {&lt;br /&gt;
 start=push(ch,start);&lt;br /&gt;
i++;&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
if(ch!='\n')&lt;br /&gt;
printf("%c",ch);&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
while(i&gt;0)&lt;br /&gt;
{&lt;br /&gt;
 start=pop(start);&lt;br /&gt;
 i--;&lt;br /&gt;
}&lt;br /&gt;
getch();&lt;br /&gt;
}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-9203810969142838061?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Dcz-gjZmaWyZt0W-BJWx4WTNNcY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Dcz-gjZmaWyZt0W-BJWx4WTNNcY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Dcz-gjZmaWyZt0W-BJWx4WTNNcY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Dcz-gjZmaWyZt0W-BJWx4WTNNcY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/dzBqyf84-Y0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/9203810969142838061/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/06/conversion-of-infix-to-postfix.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/9203810969142838061?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/9203810969142838061?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/dzBqyf84-Y0/conversion-of-infix-to-postfix.html" title="Conversion of infix to postfix expression" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/06/conversion-of-infix-to-postfix.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UHRn4_fip7ImA9WhZWFEo.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-561178815000757523</id><published>2011-05-15T20:23:00.000+05:30</published><updated>2011-05-15T20:23:57.046+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-15T20:23:57.046+05:30</app:edited><title>Expression Evaluation using stack in C Language program</title><content type="html">Consider the expression for sum of A and B- normally  we represents it with the expression A+B. A and B are two operands and ‘+’ is the operator. This particular representation is called infix. There are two alternate notations for expressing the sum of A and B :-&lt;br /&gt;
AB+   called postfix notation&lt;br /&gt;
+AB    called prefix notation.&lt;br /&gt;
We will deal with infix and postfix notations.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Conversion from infix to postfix notation&lt;/h2&gt;&lt;br /&gt;
Let us consider some additional examples, A + B * C is an mathematical expression and it is written using infix notation. Now we will see how we can convert it to postfix notation.&lt;br /&gt;
In a left to right scan of the expression, the first item encountered is A which may be directly displayed. Next the operator + is encountered and it should be &lt;b&gt;pushed into a stack&lt;/b&gt; of operators. Next the operand B is encountered and is displayed. Next comes the second operator * and it is pushed in the stack. Last item of the expression is displayed. So upto this point we will get the out as :- ABC. Now start &lt;b&gt;popping the items of the stack&lt;/b&gt; and display them .So the final output will be ABC*+.&lt;br /&gt;
&lt;br /&gt;
# include&lt; stdio.h &gt;&lt;br /&gt;
# include&lt; malloc.h &gt;&lt;br /&gt;
int b=0;&lt;br /&gt;
struct link&lt;br /&gt;
{&lt;br /&gt;
char ch;&lt;br /&gt;
struct link *next;&lt;br /&gt;
};&lt;br /&gt;
struct link  *push(char c,struct link *rec)&lt;br /&gt;
{&lt;br /&gt;
struct link *new1;&lt;br /&gt;
new1 = (struct link *)malloc(sizeof(struct link));&lt;br /&gt;
new1-&gt;ch=c;&lt;br /&gt;
new1-&gt;next = rec;&lt;br /&gt;
rec = new1;&lt;br /&gt;
return rec;&lt;br /&gt;
}&lt;br /&gt;
struct  link * pop(struct link *rec)&lt;br /&gt;
{&lt;br /&gt;
if(rec != NULL)&lt;br /&gt;
{&lt;br /&gt;
struct link *temp;&lt;br /&gt;
char x;&lt;br /&gt;
x=rec-&gt;ch;&lt;br /&gt;
printf("%c",x);&lt;br /&gt;
temp=rec-&gt;next;&lt;br /&gt;
free(rec);&lt;br /&gt;
rec=temp;&lt;br /&gt;
}&lt;br /&gt;
return rec;&lt;br /&gt;
}&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
struct link *start ;&lt;br /&gt;
int i=0;&lt;br /&gt;
 char ch='a';&lt;br /&gt;
clrscr();&lt;br /&gt;
start = NULL;&lt;br /&gt;
printf("\nEnter the expression:-");&lt;br /&gt;
while(ch!='\n')&lt;br /&gt;
{&lt;br /&gt;
 ch=getchar();&lt;br /&gt;
  if((ch=='+')||(ch=='-')||(ch=='*')||(ch=='/'))&lt;br /&gt;
 {&lt;br /&gt;
  start=push(ch,start);&lt;br /&gt;
  i++;&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
  {&lt;br /&gt;
   if(ch!='\n')&lt;br /&gt;
   printf("%c",ch);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 while(i&gt;0)&lt;br /&gt;
 {&lt;br /&gt;
  start=pop(start);&lt;br /&gt;
  i--;&lt;br /&gt;
 }&lt;br /&gt;
getch();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above program is suitable for expressions like 7+2*3 , where the operators are of same precedence or precedences increase(s) from left to right. For the above expression , postfix notation will be 723*+.Evaluation of this postfix expression will be – &lt;br /&gt;
723*+&lt;br /&gt;
72*3+&lt;br /&gt;
76+&lt;br /&gt;
7+6&lt;br /&gt;
13&lt;br /&gt;
&lt;br /&gt;
But what would happen if the expression is 7*2*3-2 ? The postfix notation of this expression would be 72*3*2-. If the postfix notation were 7232-** (which will be obtained if the conversion is done through the above program ) then the result would be 14 instead of 40.When  operators other than the first operator is found in a expression it should be compared with the previous &lt;b&gt;operator of the stack&lt;/b&gt;. If the operator in the stack is found of greater precedence over the current operator then the operator should be displayed.&lt;br /&gt;
&lt;br /&gt;
Some examples of infix and postfix expressions are given below:-&lt;br /&gt;
Infix A+B-C  Postfix  AB+C-&lt;br /&gt;
Infix A+B*C postfix  ABC*+&lt;br /&gt;
Infix (A+B)C  postfix AB+C*&lt;br /&gt;
Infix (A+B)*(C-D) postfix AB+ CD-*&lt;br /&gt;
  &lt;br /&gt;
Follow my next post for the solution of these type of expression.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-561178815000757523?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KzUJqZBxZKdGfljRaPHYl_N-m6E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KzUJqZBxZKdGfljRaPHYl_N-m6E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KzUJqZBxZKdGfljRaPHYl_N-m6E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KzUJqZBxZKdGfljRaPHYl_N-m6E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/0hpsVFyQzN8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/561178815000757523/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/05/expression-evaluation-using-stack-in-c.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/561178815000757523?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/561178815000757523?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/0hpsVFyQzN8/expression-evaluation-using-stack-in-c.html" title="Expression Evaluation using stack in C Language program" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/05/expression-evaluation-using-stack-in-c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MEQnszfSp7ImA9WhZRFkk.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-6976020350542584577</id><published>2011-04-13T04:33:00.000+05:30</published><updated>2011-04-13T04:33:23.585+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-13T04:33:23.585+05:30</app:edited><title>Application of stack-parentheses checking in an expression</title><content type="html">Let us see how we can use stack in problem solving. Consider a mathematical expression which contains a sets of nested parentheses— (x-(a+b) *(x-y)) and we have to check whether the &lt;b&gt;parentheses are nested correctly&lt;/b&gt;. Actually we have to check two points.&lt;br /&gt;
There are equal numbers of left and right parentheses.&lt;br /&gt;
Every right parenthesis is preceded by a matching left parenthesis.&lt;br /&gt;
&lt;br /&gt;
Expression such as ((A+B) violates first condition and expression such as (A+B} * { C+D) violates the second condition.&lt;br /&gt;
To solve such problem, we have to &lt;b&gt;design a stack where each opening parentheses&lt;/b&gt; ‘(‘ , ‘{‘ or ‘[‘  of the expression will be pushed and when any closing parentheses is encountered , last inserted item from the stack will popped and checked with the closing parentheses. If mismatch is found, the expression is incorrect. At the end of the push and pop operation the stack should be empty to ensure that there are equal &lt;b&gt;number opening and closing parentheses&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# include&lt; stdio.h &gt;&lt;br /&gt;
# include&lt; stdlib.h&gt;&lt;br /&gt;
int b=0;&lt;br /&gt;
struct link&lt;br /&gt;
{&lt;br /&gt;
char info;&lt;br /&gt;
struct link *next;&lt;br /&gt;
};&lt;br /&gt;
char xxx;&lt;br /&gt;
struct link  *push(char c,struct link *rec)&lt;br /&gt;
{&lt;br /&gt;
struct link *new1;&lt;br /&gt;
xxx=c;&lt;br /&gt;
new1 = (struct link *)malloc(sizeof(struct link));&lt;br /&gt;
new1-&gt;info=xxx;&lt;br /&gt;
new1-&gt;next = rec;&lt;br /&gt;
rec = new1;&lt;br /&gt;
/* Every new opening parentheses is pushed at the top of the stack and pointer rec is made to point the new location */&lt;br /&gt;
return rec;&lt;br /&gt;
}&lt;br /&gt;
struct  link * pop(char ch,struct link *rec)&lt;br /&gt;
{&lt;br /&gt;
struct link *temp;&lt;br /&gt;
char xx;&lt;br /&gt;
if(rec == NULL)&lt;br /&gt;
{&lt;br /&gt;
printf("Number of closing parentheses is more than number of closing\n");&lt;br /&gt;
b++;&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
temp=rec-&gt;next;&lt;br /&gt;
xx=rec-&gt;info;&lt;br /&gt;
if((xx=='(')&amp;&amp;(ch==')'))&lt;br /&gt;
{&lt;br /&gt;
free(rec);&lt;br /&gt;
rec = temp;&lt;br /&gt;
}&lt;br /&gt;
else if((xx=='{')&amp;&amp;(ch=='}'))&lt;br /&gt;
{&lt;br /&gt;
free(rec);&lt;br /&gt;
rec = temp;&lt;br /&gt;
}&lt;br /&gt;
else if((xx=='[')&amp;&amp;(ch==']'))&lt;br /&gt;
{&lt;br /&gt;
free(rec);&lt;br /&gt;
rec = temp;&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
b++;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
return rec;&lt;br /&gt;
}&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
struct link *start ;&lt;br /&gt;
int d;&lt;br /&gt;
 char ch='a';&lt;br /&gt;
clrscr();&lt;br /&gt;
start = NULL;&lt;br /&gt;
printf("\nEnter the expression:-");&lt;br /&gt;
while(ch!='\n')&lt;br /&gt;
{&lt;br /&gt;
ch=getchar();&lt;br /&gt;
if((ch=='(')||(ch=='{')||(ch=='['))&lt;br /&gt;
{&lt;br /&gt;
 start=push(ch,start);&lt;br /&gt;
}&lt;br /&gt;
if((ch==')')||(ch=='}')||(ch==']'))&lt;br /&gt;
{&lt;br /&gt;
start=pop(ch,start);&lt;br /&gt;
}&lt;br /&gt;
if(b!=0)&lt;br /&gt;
break;&lt;br /&gt;
}&lt;br /&gt;
if(b!=0)&lt;br /&gt;
// mismatch is found.&lt;br /&gt;
printf("Expression is not Correct.");&lt;br /&gt;
else if(start==NULL)&lt;br /&gt;
/* this indicates that all items from the stack are poped and no mismatch was found. */&lt;br /&gt;
printf("Correct Expression.");&lt;br /&gt;
else&lt;br /&gt;
/* This point indicates that no mismatch is found but still there are items in the stack. So mismatch in number of opening and closing parentheses. */&lt;br /&gt;
printf("Expression is not Correct.");&lt;br /&gt;
getch();&lt;br /&gt;
}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-6976020350542584577?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6JMgu7uVZk4J90nT283pVQEmYAs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6JMgu7uVZk4J90nT283pVQEmYAs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6JMgu7uVZk4J90nT283pVQEmYAs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6JMgu7uVZk4J90nT283pVQEmYAs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/Nm5-D5TMqI4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/6976020350542584577/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/04/application-of-stack-parentheses.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/6976020350542584577?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/6976020350542584577?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/Nm5-D5TMqI4/application-of-stack-parentheses.html" title="Application of stack-parentheses checking in an expression" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/04/application-of-stack-parentheses.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYDRX84eyp7ImA9WhZSEks.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-432906510562282286</id><published>2011-03-28T04:49:00.003+05:30</published><updated>2011-03-28T04:52:54.133+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-28T04:52:54.133+05:30</app:edited><title>C program on stack using doubly linked list</title><content type="html">So far we have seen &lt;a href="http://ds4you.blogspot.com/2011/02/stack-in-c-data-structure-programs.html"&gt;array implementation of stack&lt;/a&gt;, &lt;a href="http://ds4you.blogspot.com/2011/02/linked-list-implementation-of-stack-in.html"&gt;stack using linear linked list&lt;/a&gt;. Today we will see stack using doubly linked list. Create stack, then push items in it and pop items from it.&lt;br /&gt;&lt;br /&gt;# include&lt; stdio.h &gt;&lt;br /&gt;# include&lt; stdlib.h&gt;&lt;br /&gt;struct link&lt;br /&gt;{&lt;br /&gt;int info;&lt;br /&gt;struct link *next;&lt;br /&gt;struct link *prev;&lt;br /&gt;};&lt;br /&gt;void display(struct link *rec)&lt;br /&gt;{&lt;br /&gt;while(rec != NULL)&lt;br /&gt;{&lt;br /&gt;printf(" %d ",rec-&gt;info);&lt;br /&gt;rec = rec-&gt;next;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;struct link * push(struct link *rec)&lt;br /&gt;{&lt;br /&gt;struct link *new1;&lt;br /&gt;printf("\n Enter value for stack:-");&lt;br /&gt;new1 = (struct link *)malloc(sizeof(struct link));&lt;br /&gt;scanf("%d", &amp;new1-&gt;info);&lt;br /&gt;new1-&gt;next = rec;&lt;br /&gt;/* next pointer of new1 is holding the address of the first node of the list. so new1 is the first node now.*/&lt;br /&gt;  rec-&gt;prev=new1;&lt;br /&gt;rec = new1;&lt;br /&gt;/* from this point the pointer rec is pointing the first node of the list. */&lt;br /&gt;return rec;&lt;br /&gt;}&lt;br /&gt;struct  link * pop(struct link *rec)&lt;br /&gt;{&lt;br /&gt;struct link *temp;&lt;br /&gt;if(rec == NULL)&lt;br /&gt;{&lt;br /&gt;printf("\n Stack is empty");&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;/*rec is pointing the first node of the list. */&lt;br /&gt;temp = rec-&gt;next;&lt;br /&gt;/* temp is pointing the second node of the list.*/&lt;br /&gt;rec-&gt;next-&gt;prev=temp;&lt;br /&gt;free(rec);&lt;br /&gt;rec = temp;&lt;br /&gt;printf("\n After pop operation the stack is as follows:\n");&lt;br /&gt;display(rec);&lt;br /&gt;if(rec  == NULL)&lt;br /&gt;printf("\n Stack is empty");&lt;br /&gt;}&lt;br /&gt;return rec;&lt;br /&gt;}&lt;br /&gt;int selection()&lt;br /&gt;{&lt;br /&gt;int choice;&lt;br /&gt;do&lt;br /&gt;{&lt;br /&gt;printf("\n 1&lt;-Push ");&lt;br /&gt;printf("\n 2&lt;-Pop");&lt;br /&gt;printf("\n 3&lt;-Quit");&lt;br /&gt;printf("\n Input your choice :");&lt;br /&gt;scanf("%d", &amp;choice);&lt;br /&gt;if(choice &lt;1 || choice &gt;3)&lt;br /&gt;printf("\n Incorrect choice-&gt; Try once again");&lt;br /&gt;} while(choice &lt;1 || choice &gt;3);&lt;br /&gt;return choice;&lt;br /&gt;}&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;struct link *start ;&lt;br /&gt;int choice;&lt;br /&gt;clrscr();&lt;br /&gt;start = NULL;&lt;br /&gt;do&lt;br /&gt;{&lt;br /&gt;choice = selection();&lt;br /&gt;switch(choice)&lt;br /&gt;{&lt;br /&gt;case 1:&lt;br /&gt;start = push(start);&lt;br /&gt;printf("\n After push operation stack is as follows:\n");&lt;br /&gt;display(start);&lt;br /&gt;break;&lt;br /&gt;case 2:&lt;br /&gt;start = pop(start);&lt;br /&gt;break;&lt;br /&gt;default :&lt;br /&gt;printf("\n End of session");&lt;br /&gt;}&lt;br /&gt;} while(choice != 3);&lt;br /&gt;getch();&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-432906510562282286?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pU3XXf5fdzA8g6BZ10As3aB2TMo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pU3XXf5fdzA8g6BZ10As3aB2TMo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pU3XXf5fdzA8g6BZ10As3aB2TMo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pU3XXf5fdzA8g6BZ10As3aB2TMo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/yr34ojcp00M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/432906510562282286/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/03/c-program-on-stack-using-doubly-linked.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/432906510562282286?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/432906510562282286?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/yr34ojcp00M/c-program-on-stack-using-doubly-linked.html" title="C program on stack using doubly linked list" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/03/c-program-on-stack-using-doubly-linked.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4BRH05eyp7ImA9Wx9aEk0.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-7549460363445037449</id><published>2011-03-04T07:45:00.001+05:30</published><updated>2011-03-04T07:45:55.323+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-04T07:45:55.323+05:30</app:edited><title>C Program on reversing linked list using stack</title><content type="html">Create a linked list and then convert it into a stack. Again the stack is to be convert into a linked list so that the linked list is reversed. &lt;br /&gt;&lt;br /&gt;#include&lt; stdio.h&gt;&lt;br /&gt;#include&lt; stdlib.h&gt;&lt;br /&gt;struct tag&lt;br /&gt;{&lt;br /&gt;int a;&lt;br /&gt;struct tag *next;&lt;br /&gt;};&lt;br /&gt;int i=0;&lt;br /&gt;struct tag *node,*p,*p1;&lt;br /&gt;void create(struct tag *n)&lt;br /&gt;{&lt;br /&gt;char ch;&lt;br /&gt;node=n;&lt;br /&gt;printf("\n Want to create(y/n)");&lt;br /&gt;ch=getche();&lt;br /&gt;while(ch!='n')&lt;br /&gt;{&lt;br /&gt;node-&gt;next=(struct tag*)malloc(sizeof(struct tag));&lt;br /&gt;node=node-&gt;next;&lt;br /&gt;printf("\n Value");&lt;br /&gt;scanf("%d",&amp;node-&gt;a);&lt;br /&gt;printf("\nany more(y/n)");&lt;br /&gt;ch=getche();&lt;br /&gt;}&lt;br /&gt;node-&gt;next=NULL;&lt;br /&gt;}&lt;br /&gt;void display(struct tag*n)&lt;br /&gt;{&lt;br /&gt;node=n;&lt;br /&gt;if(node==NULL)&lt;br /&gt;i=0;&lt;br /&gt;else&lt;br /&gt;i=1;&lt;br /&gt;while(node)&lt;br /&gt;{&lt;br /&gt;printf("%4d",node-&gt;a);&lt;br /&gt;node=node-&gt;next;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;struct tag *push(struct tag *p1,struct tag *p2)&lt;br /&gt;{&lt;br /&gt;p2-&gt;next=p1;&lt;br /&gt;return(p2);&lt;br /&gt;}&lt;br /&gt;struct tag *delF(struct tag *n)&lt;br /&gt;{&lt;br /&gt;node=n-&gt;next;&lt;br /&gt;n-&gt;next=node-&gt;next;&lt;br /&gt;return(node);&lt;br /&gt;}&lt;br /&gt;struct tag *pop(struct tag *n)&lt;br /&gt;{&lt;br /&gt; node=n-&gt;next;&lt;br /&gt; free(n);&lt;br /&gt; return node;&lt;br /&gt;}&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;struct tag *n,*link,*stack,*p;&lt;br /&gt;clrscr();&lt;br /&gt;link=NULL;&lt;br /&gt;stack=NULL;&lt;br /&gt;create(link);&lt;br /&gt;printf("\nList is as follows\n");&lt;br /&gt;display(link-&gt;next);&lt;br /&gt;do&lt;br /&gt;{&lt;br /&gt;p=delF(link);&lt;br /&gt;stack=push(stack,p);&lt;br /&gt;}while(link-&gt;next!=NULL);&lt;br /&gt;printf("\nList is as follows (after converting it into a stack.)");&lt;br /&gt;display(link-&gt;next);&lt;br /&gt;if(i==0)&lt;br /&gt;printf("\nNo element in the list.");&lt;br /&gt;printf("\nStack is\n");&lt;br /&gt;display(stack);&lt;br /&gt;n=link;&lt;br /&gt;while(stack!=NULL)&lt;br /&gt;{&lt;br /&gt; n-&gt;next=stack;&lt;br /&gt; n=n-&gt;next;&lt;br /&gt; stack=pop(stack);&lt;br /&gt;}&lt;br /&gt;printf("\nStack is as follows (after converting it into a linked list.)");&lt;br /&gt;display(stack);&lt;br /&gt;if(i==0)&lt;br /&gt;printf("\nNo element in the stack.");&lt;br /&gt;printf("\nFinal list\n");&lt;br /&gt;display(link-&gt;next);&lt;br /&gt;getch();&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-7549460363445037449?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/If-wbUNsh8hjMNJWDFik8PQ3rZ8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/If-wbUNsh8hjMNJWDFik8PQ3rZ8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/If-wbUNsh8hjMNJWDFik8PQ3rZ8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/If-wbUNsh8hjMNJWDFik8PQ3rZ8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/4E1FzrNa5Tw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/7549460363445037449/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/03/c-program-on-reversing-linked-list.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/7549460363445037449?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/7549460363445037449?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/4E1FzrNa5Tw/c-program-on-reversing-linked-list.html" title="C Program on reversing linked list using stack" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/03/c-program-on-reversing-linked-list.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQHRn0yfip7ImA9Wx9UF0k.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-2934491384034756970</id><published>2011-02-15T10:00:00.000+05:30</published><updated>2011-02-15T10:02:17.396+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-15T10:02:17.396+05:30</app:edited><title>Linked list implementation of stack in C Programming</title><content type="html">Our previous program was on implementing array as &lt;b&gt;stack&lt;/b&gt;. Today I will show you the actual dynamic stack program where nodes are created and deleted as per requirements.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Codes of the stack program&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;# include&lt; stdio.h&gt;&lt;br /&gt;# include&lt; stdlib.h&gt;&lt;br /&gt;struct link&lt;br /&gt;{&lt;br /&gt;int info;&lt;br /&gt;struct link *next;&lt;br /&gt;};&lt;br /&gt;void display(struct link *rec)&lt;br /&gt;{&lt;br /&gt;while(rec != NULL)&lt;br /&gt;{&lt;br /&gt;printf(" %d ",rec-&gt;info);&lt;br /&gt;rec = rec-&gt;next;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;struct link * push(struct link *rec)&lt;br /&gt;{&lt;br /&gt;struct link *new1;&lt;br /&gt;printf("\n Enter value for stack:-");&lt;br /&gt;new1 = (struct link *)malloc(sizeof(struct link));&lt;br /&gt;scanf("%d", &amp;new1-&gt;info);&lt;br /&gt;new1-&gt;next = rec;&lt;br /&gt;/* next pointer of new1 is holding the address of the first node of the list. so new1 is the first node now.*/&lt;br /&gt;rec = new1;&lt;br /&gt;/* from this point the pointer rec is pointing the first node of the list. */&lt;br /&gt;return rec;&lt;br /&gt;}&lt;br /&gt;struct  link * pop(struct link *rec)&lt;br /&gt;{&lt;br /&gt;struct link *temp;&lt;br /&gt;if(rec == NULL)&lt;br /&gt;{&lt;br /&gt;printf("\n Stack is empty");&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;/*rec is pointing the first node of the list.*/&lt;br /&gt;temp = rec-&gt;next;&lt;br /&gt;/*temp is pointing the second node of the list. */&lt;br /&gt;free(rec);&lt;br /&gt;rec = temp;&lt;br /&gt;printf("\n After pop operation the stack is as follows:\n");&lt;br /&gt;display(rec);&lt;br /&gt;if(rec  == NULL)&lt;br /&gt;printf("\n Stack is empty");&lt;br /&gt;}&lt;br /&gt;return rec;&lt;br /&gt;}&lt;br /&gt;int selection()&lt;br /&gt;{&lt;br /&gt;int choice;&lt;br /&gt;do&lt;br /&gt;{&lt;br /&gt;printf("\n 1&lt;-Push ");&lt;br /&gt;printf("\n 2&lt;-Pop");&lt;br /&gt;printf("\n 3&lt;-Quit");&lt;br /&gt;printf("\n Input your choice :");&lt;br /&gt;scanf("%d", &amp;choice);&lt;br /&gt;if(choice &lt;1 || choice &gt;3)&lt;br /&gt;printf("\n Incorrect choice-&gt; Try once again");&lt;br /&gt;} while(choice &lt;1 || choice &gt;3);&lt;br /&gt;return choice;&lt;br /&gt;}&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;struct link *start ;&lt;br /&gt;int choice;&lt;br /&gt;clrscr();&lt;br /&gt;start = NULL;&lt;br /&gt;do&lt;br /&gt;{&lt;br /&gt;choice = selection();&lt;br /&gt;switch(choice)&lt;br /&gt;{&lt;br /&gt;case 1:&lt;br /&gt;start = push(start);&lt;br /&gt;printf("\n After push operation stack is as follows:\n");&lt;br /&gt;display(start);&lt;br /&gt;break;&lt;br /&gt;case 2:&lt;br /&gt;start = pop(start);&lt;br /&gt;break;&lt;br /&gt;default :&lt;br /&gt;printf("\n End of session");&lt;br /&gt;}&lt;br /&gt;} while(choice != 3);&lt;br /&gt;getch();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Technical analysis of this stack program&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;‘struct link *start ;’ is the list pointer which will point the &lt;b&gt;top of the stack&lt;/b&gt;. Initial value of this pointer is NULL. Two functions are defined in this program on stack. One is ‘struct  link * push(struct link *rec)’ and the other is ‘struct  link * pop(struct link *rec)’. Both the functions are return type, returning the address of top of the stack. Both the functions take the &lt;b&gt;front node address of the stack&lt;/b&gt; as argument.&lt;br /&gt;&lt;br /&gt;On calling the ‘push’ function, new node is dynamically created and the internal pointer is made to point the top of the stack. The address of the new node is returned to ‘void main()’, thus the &lt;b&gt;new node is set on the top of the stack&lt;/b&gt;. Similarly when ‘pop ()’ function is called, the node at the front is removed and address of the next location is returned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-2934491384034756970?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NaAc8Y8X54zDlRCIAo-MBjl0Zn0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NaAc8Y8X54zDlRCIAo-MBjl0Zn0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NaAc8Y8X54zDlRCIAo-MBjl0Zn0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NaAc8Y8X54zDlRCIAo-MBjl0Zn0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/Zg4UzUDzp0o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/2934491384034756970/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/02/linked-list-implementation-of-stack-in.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/2934491384034756970?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/2934491384034756970?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/Zg4UzUDzp0o/linked-list-implementation-of-stack-in.html" title="Linked list implementation of stack in C Programming" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/02/linked-list-implementation-of-stack-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YCQ30ycSp7ImA9Wx9UEE4.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-5274204118076536995</id><published>2011-02-07T06:08:00.000+05:30</published><updated>2011-02-07T06:09:22.399+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-07T06:09:22.399+05:30</app:edited><title>Stack in C Data Structure programs</title><content type="html">A &lt;b&gt;stack&lt;/b&gt; is an ordered collection of items into which new items can be inserted and from which items can be deleted. But both the operations can be done from one end called the &lt;b&gt;top of the stack&lt;/b&gt; (TOS).Unlike array stack provides the facilities for the insertion and deletion of items which makes stack dynamic. A single end of a stack can be designed as the TOS. New items can be put on TOS – in such case top of the stack moves upward to accommodate the new top most element or items from the top of the stack can be removed and top of the &lt;b&gt;stack automatically moves&lt;/b&gt; downward to correspond to the new top element.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Array implementation of stack&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Array can not be a stack but it can be the home of a stack. An array can be declared large enough for the maximum size of a stack. At the run time the &lt;b&gt;stack can grow or shrink&lt;/b&gt; within the space reserved for it. One end of the array will act like the fixed bottom of stack while from the other end items can be added or removed. So another field is needed that keeps track of the current position of the top of the stack. This is called &lt;b&gt;array implementation of stack&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Program on Array implementation of stack&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;# include&lt; stdio.h&gt;&lt;br /&gt;# include&lt; string.h&gt;&lt;br /&gt;# define size  3&lt;br /&gt;int tos= -1;&lt;br /&gt;/*this variable will keep track of the top of the stack */&lt;br /&gt;int flag = 0;&lt;br /&gt;/* this variable will determine whether push or pop will be granted. */&lt;br /&gt;int stack[size];&lt;br /&gt;/* array , within this array stack will grow and shrink. */&lt;br /&gt;void push(int s[], int d)&lt;br /&gt;{ &lt;br /&gt; if(tos==size-1)&lt;br /&gt; {&lt;br /&gt; /* this condition becomes true when the stack can not grow further */&lt;br /&gt;    flag=0;&lt;br /&gt;  }&lt;br /&gt;  else&lt;br /&gt;  {&lt;br /&gt;flag = 1;&lt;br /&gt;++tos;&lt;br /&gt;s[tos] = d;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;int pop(int s[])&lt;br /&gt;{&lt;br /&gt;int p;&lt;br /&gt;if(tos == -1)&lt;br /&gt;{&lt;br /&gt;p = 0;&lt;br /&gt;flag = 0;&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;flag = 1;&lt;br /&gt;p = s[tos];&lt;br /&gt;--tos;&lt;br /&gt;}&lt;br /&gt;return p;&lt;br /&gt;}&lt;br /&gt;void display(int s[])&lt;br /&gt;{&lt;br /&gt;int i;&lt;br /&gt;if(tos == -1)&lt;br /&gt;{&lt;br /&gt;printf("\n Stack is empty");&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;for(i = tos; i &gt;= 0; --i)&lt;br /&gt;printf("\n %d", s[i] );&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;int  data;&lt;br /&gt;char choice;&lt;br /&gt;int q = 0;&lt;br /&gt;clrscr();&lt;br /&gt;do&lt;br /&gt;{&lt;br /&gt;printf(" \nPush-&gt;i Pop-&gt;p Quit-&gt;q:");&lt;br /&gt;printf("\nInput the choice : ");&lt;br /&gt;do&lt;br /&gt;{&lt;br /&gt;choice = getchar();&lt;br /&gt;choice =tolower(choice);&lt;br /&gt;}while(strchr("ipq",choice)==NULL);&lt;br /&gt;printf("Your choice is: %c",choice);&lt;br /&gt;switch(choice)&lt;br /&gt;{&lt;br /&gt;case 'i' :&lt;br /&gt;printf("\n Input the element to push:");&lt;br /&gt;scanf("%d", &amp;data);&lt;br /&gt;push(stack, data);&lt;br /&gt;if(flag)&lt;br /&gt;{&lt;br /&gt;printf("\n After inserting ");&lt;br /&gt;display(stack);&lt;br /&gt;if(tos == (size-1))&lt;br /&gt;printf("\n Stack is full");&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;printf("\n capacity is exhausted");&lt;br /&gt;break;&lt;br /&gt;case 'p' :&lt;br /&gt;data = pop(stack);&lt;br /&gt;if(flag)&lt;br /&gt;{&lt;br /&gt;printf("\n Data is popped: %d", data);&lt;br /&gt;printf("\n Rest data in stack is as follows:\n");&lt;br /&gt;display(stack);&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;printf("\n No popping took place" );&lt;br /&gt;break;&lt;br /&gt;case 'q':&lt;br /&gt;q = 1;&lt;br /&gt;}&lt;br /&gt;} while(!q);&lt;br /&gt;getch();&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-5274204118076536995?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iVfDZik6tfL3z-UngoauT9DqzM4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iVfDZik6tfL3z-UngoauT9DqzM4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iVfDZik6tfL3z-UngoauT9DqzM4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iVfDZik6tfL3z-UngoauT9DqzM4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/dCeklidzK-k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/5274204118076536995/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/02/stack-in-c-data-structure-programs.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/5274204118076536995?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/5274204118076536995?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/dCeklidzK-k/stack-in-c-data-structure-programs.html" title="Stack in C Data Structure programs" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/02/stack-in-c-data-structure-programs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8MQ309cCp7ImA9Wx9VFkw.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-5833045163836811701</id><published>2011-02-02T07:43:00.000+05:30</published><updated>2011-02-02T07:44:42.368+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-02T07:44:42.368+05:30</app:edited><title>Creating a linked list with common node values of two different linked lists</title><content type="html">In this C program on &lt;b&gt;linked list&lt;/b&gt;, two different linked lists will be created with different number of nodes. A third linked list will be created from those two linked lists taking the nodes with common values.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Step by step analysis of the linked list program&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Two &lt;b&gt;linked lists are created&lt;/b&gt; separately with varying number of nodes. User enters the number of nodes of each linked list while creating them. The linked lists are displayed after creating. Function ‘void make(struct list *)’ is used to create linked list and another function ‘void show(struct list *)’ is defined in this program to display linked list. Function ‘struct list *com(struct list *,struct list *,struct list *)’ is defined in this program to do the final job, searching the common value nodes from each of the linked lists and creating the third linked list. &lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Codes of this linked list program&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;#include&lt; stdio.h&gt;&lt;br /&gt;#include&lt; stdlib.h&gt;&lt;br /&gt;struct list&lt;br /&gt;{&lt;br /&gt;int info;&lt;br /&gt;struct list *next;&lt;br /&gt;};&lt;br /&gt;int i=0;&lt;br /&gt;void make(struct list *);&lt;br /&gt;void show(struct list *);&lt;br /&gt;struct list *com(struct list *,struct list *,struct list *);&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;struct list *temp,*head,*in=NULL;&lt;br /&gt;clrscr();&lt;br /&gt;temp=(struct list *)malloc(sizeof(struct list));&lt;br /&gt;make(temp);&lt;br /&gt;printf("\ndisplaying FIRST linked list\n");&lt;br /&gt;show(temp);&lt;br /&gt;head=(struct list *)malloc(sizeof(struct list));&lt;br /&gt;make(head);&lt;br /&gt;printf("\ndisplaying SECOND linked list\n");&lt;br /&gt;show(head);&lt;br /&gt;in=com(temp,head,in);&lt;br /&gt;printf("\nDisplaying the final linked list\n");&lt;br /&gt;show(in);&lt;br /&gt;getch();&lt;br /&gt;}&lt;br /&gt;void make(struct list *temp)&lt;br /&gt;{&lt;br /&gt;int n,i;&lt;br /&gt;printf("\n\n enter the no of nodes you want to create\n");&lt;br /&gt;scanf("%d",&amp;n);&lt;br /&gt;for(i=1;i&lt; n;i++)&lt;br /&gt;{&lt;br /&gt;printf("entering value in %d node\n",i);&lt;br /&gt;scanf("%d",&amp;temp-&gt;info);&lt;br /&gt;temp-&gt;next=(struct list *)malloc(sizeof(struct list));&lt;br /&gt;temp=temp-&gt;next;&lt;br /&gt;}&lt;br /&gt;printf("Entering value in %d node\n",i);&lt;br /&gt;scanf("%d",&amp;temp-&gt;info);&lt;br /&gt;temp-&gt;next=NULL;&lt;br /&gt;}&lt;br /&gt;void show(struct list *temp)&lt;br /&gt;{&lt;br /&gt;while(temp!=NULL)&lt;br /&gt;{&lt;br /&gt;printf("%d\t",temp-&gt;info);&lt;br /&gt;temp=temp-&gt;next;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;struct list *com(struct list *temp,struct list *h,struct list *in)&lt;br /&gt;{&lt;br /&gt;struct list *head,*head1;&lt;br /&gt;while(temp!=NULL)&lt;br /&gt;{&lt;br /&gt; head=h;&lt;br /&gt;while(head!=NULL)&lt;br /&gt;{&lt;br /&gt;if(temp-&gt;info==head-&gt;info)&lt;br /&gt;{&lt;br /&gt;in-&gt;next=(struct list *)malloc(sizeof(struct list));&lt;br /&gt;in=in-&gt;next;&lt;br /&gt;in-&gt;info=temp-&gt;info;&lt;br /&gt;in-&gt;next=NULL;&lt;br /&gt;if(i==0)&lt;br /&gt;head1=in;&lt;br /&gt;i++;&lt;br /&gt;}&lt;br /&gt;head=head-&gt;next;&lt;br /&gt;}&lt;br /&gt;temp=temp-&gt;next;&lt;br /&gt;}&lt;br /&gt;return head1;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-5833045163836811701?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Su33n3Dw9nKN_7nj9mYhBgPzPfo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Su33n3Dw9nKN_7nj9mYhBgPzPfo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Su33n3Dw9nKN_7nj9mYhBgPzPfo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Su33n3Dw9nKN_7nj9mYhBgPzPfo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/HJEw0SHngrs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/5833045163836811701/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/02/creating-linked-list-with-common-node.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/5833045163836811701?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/5833045163836811701?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/HJEw0SHngrs/creating-linked-list-with-common-node.html" title="Creating a linked list with common node values of two different linked lists" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/02/creating-linked-list-with-common-node.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYHRHc4fyp7ImA9Wx9WGEs.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-3536551828045801714</id><published>2011-01-24T15:07:00.000+05:30</published><updated>2011-01-24T15:12:15.937+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-24T15:12:15.937+05:30</app:edited><title>C program on modification of values in a linked list</title><content type="html">Suppose a linked list is created with four fields in the information part and the user wants to modify the contents of a node of the linked list.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ds4you.blogspot.com/2010/06/linked-list-using-c-programming.html"&gt;Creating the linked list&lt;/a&gt; and searching the linked list have been discussed earlier. This program on linked list also involves these two operations. After creating the list searching is required for modification of values. On successful seaching the values of the specific node is modified.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The program would be as follows :-&lt;br /&gt;&lt;br /&gt;# include &lt; stdio.h&gt;&lt;br /&gt;# include &lt; stdlib.h&gt;&lt;br /&gt;struct link&lt;br /&gt;{&lt;br /&gt;char name[100];&lt;br /&gt;char surname[100];&lt;br /&gt;char add[100];&lt;br /&gt;long ph;&lt;br /&gt;struct link *next;&lt;br /&gt;};&lt;br /&gt;int x=0;&lt;br /&gt;struct link *node;&lt;br /&gt;int search(char ch[],struct link *n)&lt;br /&gt;{&lt;br /&gt;char c;&lt;br /&gt;for(node=n; node-&gt;next != NULL; node = node-&gt;next)&lt;br /&gt;{&lt;br /&gt;if(strcmp(node-&gt; name,ch)==0)&lt;br /&gt;{&lt;br /&gt;x++;&lt;br /&gt;fflush(stdin);&lt;br /&gt;printf("\nWant to change the surname ?(y/n)");&lt;br /&gt;scanf("%c",&amp;c);&lt;br /&gt;fflush(stdin);&lt;br /&gt;if(c!='n')&lt;br /&gt;{&lt;br /&gt;printf("\nEnter the Surname :-");&lt;br /&gt;gets(node-&gt;surname);&lt;br /&gt;}&lt;br /&gt;printf("\nWant to change the address ?(y/n)");&lt;br /&gt;scanf("%c",&amp;c);&lt;br /&gt;fflush(stdin);&lt;br /&gt;if(c!='n')&lt;br /&gt;{&lt;br /&gt;printf("\nEnter the Address :-");&lt;br /&gt;gets(node-&gt;add);&lt;br /&gt;}&lt;br /&gt;printf("\nWant to change the phone number ?(y/n)");&lt;br /&gt;scanf("%c",&amp;c);&lt;br /&gt;fflush(stdin);&lt;br /&gt;if(c!='n')&lt;br /&gt;{&lt;br /&gt;printf("\nEnter the Phone number :-");&lt;br /&gt;scanf("%ld",&amp;node-&gt;ph);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;if(x == 0)&lt;br /&gt;return 0;&lt;br /&gt;else&lt;br /&gt;return 1;&lt;br /&gt;}&lt;br /&gt;void display(struct link *n)&lt;br /&gt;{&lt;br /&gt;for(node=n; node-&gt;next != NULL; node = node-&gt;next)&lt;br /&gt;{&lt;br /&gt;printf("\n%s\n",node-&gt;name);&lt;br /&gt;printf("%s\n",node-&gt;surname);&lt;br /&gt;printf("%s\n",node-&gt;add);&lt;br /&gt;printf("%ld\n",node-&gt;ph);&lt;br /&gt;printf("\n*****************\n");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;void get(struct link *n)&lt;br /&gt;{&lt;br /&gt;char ch='y';&lt;br /&gt;node=n;&lt;br /&gt;while(ch !='n')&lt;br /&gt;{&lt;br /&gt; fflush(stdin);&lt;br /&gt;printf("\n Enter the name: -");&lt;br /&gt;scanf("%s",node-&gt;name);&lt;br /&gt;printf("\n Enter the surname: -");&lt;br /&gt;scanf("%s",node-&gt;surname);&lt;br /&gt;printf("\n Enter the address: -");&lt;br /&gt;scanf("%s",node-&gt;add);&lt;br /&gt;printf("\n Enter the Telephone number: -");&lt;br /&gt;scanf("%ld",&amp;node-&gt;ph);&lt;br /&gt;node-&gt;next = (struct link* ) malloc (sizeof (struct link));&lt;br /&gt;node = node-&gt;next;&lt;br /&gt;node-&gt;next =NULL;&lt;br /&gt;printf("\n Input choice n for break: ");&lt;br /&gt;ch=getche();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;struct link *start = (struct link *)malloc(sizeof(struct link));&lt;br /&gt;char name[15];&lt;br /&gt;int i=0;&lt;br /&gt;clrscr();&lt;br /&gt;get(start);&lt;br /&gt;display(start);&lt;br /&gt;while(i==0)&lt;br /&gt;{&lt;br /&gt; printf("\nEnter the name whose record is to be changed :");&lt;br /&gt; scanf("%s",name);&lt;br /&gt; i=search(name,start);&lt;br /&gt; }&lt;br /&gt; display(start);&lt;br /&gt;getch();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Program to display a linked list from front side and reverse side&lt;br /&gt;#include&lt;stdio.h&gt;&lt;br /&gt;#include&lt;malloc.h&gt;&lt;br /&gt;struct tag&lt;br /&gt;{&lt;br /&gt; int i;&lt;br /&gt; struct tag *next;&lt;br /&gt;};&lt;br /&gt;struct tag *start=NULL,*node;&lt;br /&gt;int x=1,flag=0,flag1;&lt;br /&gt;void create()&lt;br /&gt;{&lt;br /&gt;char ch;&lt;br /&gt; node=start;&lt;br /&gt; puts("Want to create nodes(y/n):-");&lt;br /&gt; scanf("%c",&amp;ch);&lt;br /&gt; while(ch!='n')&lt;br /&gt; {&lt;br /&gt;  node-&gt;next=(struct tag *)malloc(sizeof(struct tag));&lt;br /&gt;  node=node-&gt;next;&lt;br /&gt;  node-&gt;next=NULL;&lt;br /&gt;  printf("\nEnter value::");&lt;br /&gt;  scanf("%d",&amp;node-&gt;i);&lt;br /&gt;  flag++;&lt;br /&gt;  puts("Want to create nodes(y/n):-");&lt;br /&gt; ch=getche();&lt;br /&gt;}&lt;br /&gt;flag1=flag;&lt;br /&gt;}&lt;br /&gt;void dis()&lt;br /&gt;{&lt;br /&gt; node=start-&gt;next;&lt;br /&gt; while(node)&lt;br /&gt; {&lt;br /&gt;  printf("%d\n",node-&gt;i);&lt;br /&gt;  node=node-&gt;next;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;void dis1()&lt;br /&gt;{&lt;br /&gt; while(x&lt;=flag1)&lt;br /&gt; {&lt;br /&gt; flag=flag1-x;&lt;br /&gt; node=start-&gt;next;&lt;br /&gt;  while(flag)&lt;br /&gt;  {&lt;br /&gt;   node=node-&gt;next;&lt;br /&gt;   flag--;&lt;br /&gt;  }&lt;br /&gt;  printf("%d\n",node-&gt;i);&lt;br /&gt;  x++;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt; clrscr();&lt;br /&gt; create();&lt;br /&gt; printf("\nValues from front side are as follows.\n");&lt;br /&gt; dis();&lt;br /&gt; printf("\nLinked List displayed from reverse\n");&lt;br /&gt; dis1();&lt;br /&gt; getch();&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-3536551828045801714?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PMw5HI6VCEANobeuv2NPfgfO414/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PMw5HI6VCEANobeuv2NPfgfO414/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PMw5HI6VCEANobeuv2NPfgfO414/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PMw5HI6VCEANobeuv2NPfgfO414/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/1vtRi03tMGQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/3536551828045801714/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/01/c-program-on-modification-of-values-in.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/3536551828045801714?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/3536551828045801714?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/1vtRi03tMGQ/c-program-on-modification-of-values-in.html" title="C program on modification of values in a linked list" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/01/c-program-on-modification-of-values-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IDRHs_cCp7ImA9Wx9WE0k.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-3673288606622541503</id><published>2011-01-18T15:34:00.000+05:30</published><updated>2011-01-18T15:42:55.548+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-18T15:42:55.548+05:30</app:edited><title>C Program on linked list using address of list pointer</title><content type="html">I have posted number of programs on new node insertion and deletion of node from linked list. Those programs were either using header node in &lt;b&gt;linked list&lt;/b&gt; or normal linked list. In linked list with header node the insertion at first location or deletion from the first location can be carried out easily but in linked list without header node, &lt;a href="http://ds4you.blogspot.com/2010/06/singly-linked-list-using-c-programming.html"&gt;inserting new node at first location&lt;/a&gt; or &lt;a href=”http://ds4you.blogspot.com/2010/07/deletion-of-node-in-linked-list-using-c.html“&gt;deleting node from first location&lt;/a&gt; invokes some precautions. In both the cases the function is defined as returning address of the first node of the linked list after the operation is completed.&lt;br /&gt;&lt;br /&gt;Today I will show you how to execute the operations of deletion and insertion on linked list even at the first location without returning values from the function. I have passed the address of the pointer holding the address of first node of the linked list to each function. So after deletion or insertion of node at &lt;b&gt;starting location of the linked list&lt;/b&gt;, the address of the first node is assigned to the pointer to pointer and no need to return the new address of the first node of the linked list to void main.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# include &lt; stdio.h&gt;&lt;br /&gt;# include &lt; stdlib.h&gt;&lt;br /&gt;struct list&lt;br /&gt;{&lt;br /&gt;int age;&lt;br /&gt;struct list *next;&lt;br /&gt;};&lt;br /&gt;struct list *new1,*node,*p;&lt;br /&gt;void create(struct list **s)&lt;br /&gt;{&lt;br /&gt;char ch;&lt;br /&gt;node=*s;&lt;br /&gt;printf("\nWant to create a node(y/n):");&lt;br /&gt;ch=getche();&lt;br /&gt;while (ch != 'n')&lt;br /&gt;{&lt;br /&gt;node-&gt;next = (struct list *) malloc(sizeof(struct list));&lt;br /&gt;node = node-&gt;next;&lt;br /&gt;printf("\n Enter the numeric value:- ");&lt;br /&gt;scanf("%d",&amp;node-&gt;age);&lt;br /&gt;printf("\n Enter choice--'n' for break: ");&lt;br /&gt;ch = getche();&lt;br /&gt;}&lt;br /&gt;node-&gt;next = NULL;&lt;br /&gt;}&lt;br /&gt;void displayList (struct list **s)&lt;br /&gt;{&lt;br /&gt;node=*s;&lt;br /&gt;while (node!=NULL)&lt;br /&gt;{&lt;br /&gt;printf("\n%d", node-&gt;age);&lt;br /&gt;node = node-&gt;next;&lt;br /&gt;}&lt;br /&gt;printf("\n");&lt;br /&gt;}&lt;br /&gt;void delA(struct list **s)&lt;br /&gt;{&lt;br /&gt;int c=1,counter;&lt;br /&gt;printf("\nEnter the location of the node to be deleted:");&lt;br /&gt;scanf("%d",&amp;counter);&lt;br /&gt;if(c==counter)&lt;br /&gt;{&lt;br /&gt; node=(*s)-&gt;next;&lt;br /&gt; free(*s);&lt;br /&gt; s=&amp;node;&lt;br /&gt; }&lt;br /&gt; else&lt;br /&gt; {&lt;br /&gt;node=*s;&lt;br /&gt;p=node-&gt;next;&lt;br /&gt;while(p-&gt;next!=NULL)&lt;br /&gt;{&lt;br /&gt;if(c+1==counter)&lt;br /&gt;break;&lt;br /&gt;c++;&lt;br /&gt;node=node-&gt;next;&lt;br /&gt;p=p-&gt;next;&lt;br /&gt;}&lt;br /&gt;node-&gt;next=p-&gt;next;&lt;br /&gt;free(p);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;void insA(struct list **s)&lt;br /&gt;{&lt;br /&gt;int c=1,counter;&lt;br /&gt;printf("\nEnter the location where to insert the new node:");&lt;br /&gt;scanf("%d",&amp;counter);&lt;br /&gt;new1=(struct list *) malloc(sizeof(struct list));&lt;br /&gt;printf("\n Enter the numeric value:- ");&lt;br /&gt;scanf("%d",&amp;new1-&gt;age);&lt;br /&gt;&lt;br /&gt;if(c==counter)&lt;br /&gt;{&lt;br /&gt; new1-&gt;next=*s;&lt;br /&gt; s=&amp;new1;&lt;br /&gt; }&lt;br /&gt; else&lt;br /&gt; {&lt;br /&gt;node=*s;&lt;br /&gt;p=node-&gt;next;&lt;br /&gt;while(p!=NULL)&lt;br /&gt;{&lt;br /&gt;if(c+1==counter)&lt;br /&gt;break;&lt;br /&gt;c++;&lt;br /&gt;node=node-&gt;next;&lt;br /&gt;p=p-&gt;next;&lt;br /&gt;}&lt;br /&gt;node-&gt;next=new1;&lt;br /&gt;new1-&gt;next=p;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;struct list *start;&lt;br /&gt;clrscr();&lt;br /&gt;start=(struct list *) malloc(sizeof(struct list));&lt;br /&gt;printf("\n Enter the numeric value:- ");&lt;br /&gt;scanf("%d",&amp;start-&gt;age);&lt;br /&gt;&lt;br /&gt;create(&amp;start);&lt;br /&gt;printf("\n Created list is as follows\n");&lt;br /&gt;displayList(&amp;start);&lt;br /&gt;printf("\nDeleting any node\n");&lt;br /&gt;delA(&amp;start);&lt;br /&gt;printf("\n now the list is\n");&lt;br /&gt;displayList(&amp;start);&lt;br /&gt;printf("\nInserting new node\n");&lt;br /&gt;insA(&amp;start);&lt;br /&gt;printf("\n now the list is\n");&lt;br /&gt;displayList(&amp;start);&lt;br /&gt;getch();&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-3673288606622541503?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oXnuXQa8yKWsqKI3weFycUsHO00/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oXnuXQa8yKWsqKI3weFycUsHO00/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oXnuXQa8yKWsqKI3weFycUsHO00/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oXnuXQa8yKWsqKI3weFycUsHO00/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/PjJSvI2CBFY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/3673288606622541503/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/01/c-program-on-linked-list-using-address.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/3673288606622541503?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/3673288606622541503?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/PjJSvI2CBFY/c-program-on-linked-list-using-address.html" title="C Program on linked list using address of list pointer" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/01/c-program-on-linked-list-using-address.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YNSX08fyp7ImA9Wx9XGUo.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-7710292160117278254</id><published>2011-01-14T09:48:00.000+05:30</published><updated>2011-01-14T09:56:38.377+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-14T09:56:38.377+05:30</app:edited><title>C program to delete any node of a doubly linked list</title><content type="html">Previously we have seen how to delete the last node and first node of a &lt;b&gt;doubly linked list&lt;/b&gt;.  In both the above cases no traversal was required. To delete any location node of a doubly linked list, traversal is required but unlike linear linked list only one moving pointer is needed here. This moving pointer in the doubly linked list will trace out the location and from that point the node will be disconnected from the doubly linked list and removed.&lt;br /&gt;&lt;br /&gt;Here is the program&lt;br /&gt;&lt;br /&gt;# include &lt;stdio.h &gt;&lt;br /&gt;# include &lt;stdlib.h &gt;&lt;br /&gt;struct list&lt;br /&gt;{&lt;br /&gt;int age;&lt;br /&gt;struct list *next;&lt;br /&gt;struct list *prev;&lt;br /&gt;};&lt;br /&gt;struct list *new1,*node;&lt;br /&gt;void create(struct list *s,struct list *e)&lt;br /&gt;{&lt;br /&gt;char ch;&lt;br /&gt;node=s;&lt;br /&gt;node-&gt;next = (struct list *) malloc(sizeof(struct list));&lt;br /&gt;node-&gt;next-&gt;prev= node;&lt;br /&gt;node = node-&gt;next;&lt;br /&gt;node-&gt;next=e;&lt;br /&gt;e-&gt;prev=node;&lt;br /&gt;printf("\n Enter the numeric value:- ");&lt;br /&gt;scanf("%d",&amp;node-&gt;age);&lt;br /&gt;&lt;br /&gt;printf("\nWant to create a node(y/n):");&lt;br /&gt;ch=getche();&lt;br /&gt;while (ch != 'n')&lt;br /&gt;{&lt;br /&gt;node-&gt;next = (struct list *) malloc(sizeof(struct list));&lt;br /&gt;node-&gt;next-&gt;prev= node;&lt;br /&gt;node = node-&gt;next;&lt;br /&gt;printf("\n Enter the numeric value:- ");&lt;br /&gt;scanf("%d",&amp;node-&gt;age);&lt;br /&gt;printf("\n Enter choice--'n' for break: ");&lt;br /&gt;ch = getche();&lt;br /&gt;}&lt;br /&gt;node-&gt;next = e;&lt;br /&gt;e-&gt;prev=node;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;void displayL (struct list *s,struct list *e)&lt;br /&gt;{&lt;br /&gt;node = s-&gt;next;&lt;br /&gt;while (node!=e)&lt;br /&gt;{&lt;br /&gt;printf("\n%d", node-&gt;age);&lt;br /&gt;node = node-&gt;next;&lt;br /&gt;}&lt;br /&gt;printf("\n");&lt;br /&gt;}&lt;br /&gt;void displayR (struct list *e,struct list *s)&lt;br /&gt;{&lt;br /&gt;node = e-&gt;prev;&lt;br /&gt;while (node!=s)&lt;br /&gt;{&lt;br /&gt;printf("\n%d",node-&gt;age);&lt;br /&gt;node = node-&gt;prev;&lt;br /&gt;}&lt;br /&gt;printf("\n");&lt;br /&gt;}&lt;br /&gt;void delA(struct list *s,struct list *e)&lt;br /&gt;{&lt;br /&gt;int c=1,counter;&lt;br /&gt;printf("\nEnter the location of the node to be deleted:");&lt;br /&gt;scanf("%d",&amp;counter);&lt;br /&gt;node=s-&gt;next;&lt;br /&gt;while(node-&gt;next!=e)&lt;br /&gt;{&lt;br /&gt;if(c==counter)&lt;br /&gt;break;&lt;br /&gt;c++;&lt;br /&gt;node=node-&gt;next;&lt;br /&gt;}&lt;br /&gt;node-&gt;prev-&gt;next=node-&gt;next;&lt;br /&gt;node-&gt;next-&gt;prev=node-&gt;prev;&lt;br /&gt;free(node);&lt;br /&gt;}&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;struct list *start,*end;&lt;br /&gt;clrscr();&lt;br /&gt;start=(struct list *) malloc(sizeof(struct list));&lt;br /&gt;end=(struct list *) malloc(sizeof(struct list));&lt;br /&gt;create(start,end);&lt;br /&gt;printf("\n Created list is as follows(L -&gt;R)\n");&lt;br /&gt;displayL(start,end);&lt;br /&gt;printf("\n Created list displayed from R-&gt;L\n");&lt;br /&gt;displayR(end,start);&lt;br /&gt;printf("\nDeleting the First node\n");&lt;br /&gt;delA(start,end);&lt;br /&gt;printf("\n now the listfrom L -&gt;R\n");&lt;br /&gt;displayL(start,end);&lt;br /&gt;printf("\n list from R to L after deletion\n");&lt;br /&gt;displayR(end,start);&lt;br /&gt;getch();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Related posts: &lt;br /&gt;&lt;a href="http://ds4you.blogspot.com/2010/09/to-delete-last-node-of-double-linked.html"&gt;Deletion of last node from doubly linked list&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ds4you.blogspot.com/2011/01/c-program-to-delete-first-node-of.html"&gt;Deletion of first node from doubly linked list&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-7710292160117278254?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nb9CbrH8ZfG1j8F8b4UzW2kT_4A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nb9CbrH8ZfG1j8F8b4UzW2kT_4A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nb9CbrH8ZfG1j8F8b4UzW2kT_4A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nb9CbrH8ZfG1j8F8b4UzW2kT_4A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/5WFJK2y4VWk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/7710292160117278254/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/01/c-program-to-delete-any-node-of-doubly.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/7710292160117278254?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/7710292160117278254?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/5WFJK2y4VWk/c-program-to-delete-any-node-of-doubly.html" title="C program to delete any node of a doubly linked list" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/01/c-program-to-delete-any-node-of-doubly.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QHRX8_eSp7ImA9Wx9XGUo.&quot;"><id>tag:blogger.com,1999:blog-3484955594439249391.post-3543883024575942053</id><published>2011-01-14T09:47:00.000+05:30</published><updated>2011-01-14T09:58:54.141+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-14T09:58:54.141+05:30</app:edited><title>C program to delete the first node of a doubly linked list</title><content type="html">Previously we have seen how to delete the last node of a &lt;b&gt;doubly linked list&lt;/b&gt;. To delete the first node, no traversal is required. Simply connect the left header node with the second node of the doubly linked list to disconnect the node from the list and remove it.&lt;br /&gt;&lt;br /&gt;Here is the program&lt;br /&gt;&lt;br /&gt;# include &lt; stdio.h &gt;&lt;br /&gt;# include &lt; stdlib.h &gt;&lt;br /&gt;struct list&lt;br /&gt;{&lt;br /&gt;char ch;&lt;br /&gt;struct list *next;&lt;br /&gt;struct list *prev;&lt;br /&gt;};&lt;br /&gt;struct list *new1,*node;&lt;br /&gt;void create(struct list *s,struct list *e)&lt;br /&gt;{&lt;br /&gt;char ch;&lt;br /&gt;node=s;&lt;br /&gt;printf("\nWant to create a node(y/n):");&lt;br /&gt;ch=getche();&lt;br /&gt;while (ch != 'n')&lt;br /&gt;{&lt;br /&gt;node-&gt;next = (struct list *) malloc(sizeof(struct list));&lt;br /&gt;node-&gt;next-&gt;prev= node;&lt;br /&gt;node = node-&gt;next;&lt;br /&gt;printf("\n Enter any character:- ");&lt;br /&gt;scanf(“%c”,&amp;node-&gt;ch);&lt;br /&gt;printf("\n Enter choice--'n' for break: ");&lt;br /&gt;ch = getche();&lt;br /&gt;}&lt;br /&gt;node-&gt;next = e;&lt;br /&gt;e-&gt;prev=node;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;void displayL (struct list *s,struct list *e)&lt;br /&gt;{&lt;br /&gt;node = s-&gt;next;&lt;br /&gt;while (node!=e)&lt;br /&gt;{&lt;br /&gt;printf("\n 0x%x--%c", node,node-&gt;ch);&lt;br /&gt;node = node-&gt;next;&lt;br /&gt;}&lt;br /&gt;printf("\n");&lt;br /&gt;}&lt;br /&gt;void displayR (struct list *e,struct list *s)&lt;br /&gt;{&lt;br /&gt;node = e-&gt;prev;&lt;br /&gt;while (node!=s)&lt;br /&gt;{&lt;br /&gt;printf("\n%c",node-&gt;ch);&lt;br /&gt;node = node-&gt;prev;&lt;br /&gt;}&lt;br /&gt;printf("\n");&lt;br /&gt;}&lt;br /&gt;void delF(struct list *s)&lt;br /&gt;{&lt;br /&gt;node=s-&gt;next;&lt;br /&gt;node-&gt;prev-&gt;next=node-&gt;next;&lt;br /&gt;node-&gt;next-&gt;prev=node-&gt;prev;&lt;br /&gt;free(node);&lt;br /&gt;}&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;struct list *start,*end;&lt;br /&gt;clrscr();&lt;br /&gt;start=(struct list *) malloc(sizeof(struct list));&lt;br /&gt;end=(struct list *) malloc(sizeof(struct list));&lt;br /&gt;create(start,end);&lt;br /&gt;printf("\n Displaying the list from left to right\n");&lt;br /&gt;displayL(start,end);&lt;br /&gt;printf("\n Displaying the list from right to left\n");&lt;br /&gt;displayR(end,start);&lt;br /&gt;printf("\nFirst node deleted\n");&lt;br /&gt;delF(start);&lt;br /&gt;printf("\n now the list from left to right\n");&lt;br /&gt;displayL(start,end);&lt;br /&gt;printf("\nNow the list from right to left\n");&lt;br /&gt;displayR(end,start);&lt;br /&gt;getch();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Related posts: &lt;br /&gt;&lt;a href="http://ds4you.blogspot.com/2010/09/to-delete-last-node-of-double-linked.html"&gt;Deletion of last node from doubly linked list&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ds4you.blogspot.com/2011/01/c-program-to-delete-any-node-of-doubly.html"&gt;Deletion of any node from doubly linked list&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3484955594439249391-3543883024575942053?l=ds4you.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qjGtKQv8mqPu0TRn3KMSHv7gOqk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qjGtKQv8mqPu0TRn3KMSHv7gOqk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qjGtKQv8mqPu0TRn3KMSHv7gOqk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qjGtKQv8mqPu0TRn3KMSHv7gOqk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CDataStructure/~4/di0ya1PsVyE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://ds4you.blogspot.com/feeds/3543883024575942053/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://ds4you.blogspot.com/2011/01/c-program-to-delete-first-node-of.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/3543883024575942053?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3484955594439249391/posts/default/3543883024575942053?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CDataStructure/~3/di0ya1PsVyE/c-program-to-delete-first-node-of.html" title="C program to delete the first node of a doubly linked list" /><author><name>Dhananjoy Chakraborty</name><uri>https://profiles.google.com/106197048704264708394</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://ds4you.blogspot.com/2011/01/c-program-to-delete-first-node-of.html</feedburner:origLink></entry></feed>

