[COLOR=#000000]#[/COLOR][B][COLOR=#006699]include[/COLOR][/B] [COLOR=#000000]<iostream.h> [/COLOR]
[COLOR=#000000]#[/COLOR][B][COLOR=#006699]include[/COLOR][/B] [COLOR=#000000]<conio.h> [/COLOR]
[COLOR=#000000]#[/COLOR][B][COLOR=#006699]include[/COLOR][/B] [COLOR=#000000]<stdlib.h> [/COLOR]
[B][COLOR=#006699]class[/COLOR][/B] [COLOR=#000000]list; [/COLOR]
[B][COLOR=#006699]class[/COLOR][/B] [COLOR=#000000]node [/COLOR]
[COLOR=#000000]{ [/COLOR]
[COLOR=#000000]friend [/COLOR][B][COLOR=#006699]class[/COLOR][/B] [COLOR=#000000]list; [/COLOR]
[B][COLOR=#006699]private[/COLOR][/B][COLOR=#000000]: [/COLOR]
[COLOR=#000000]int data; [/COLOR]
[COLOR=#000000]node *link; [/COLOR]
[COLOR=#000000]}; [/COLOR]
[B][COLOR=#006699]class[/COLOR][/B] [COLOR=#000000]list [/COLOR]
[COLOR=#000000]{ [/COLOR]
[B][COLOR=#006699]private[/COLOR][/B][COLOR=#000000]: [/COLOR]
[COLOR=#000000]node *first; [/COLOR]
[B][COLOR=#006699]public[/COLOR][/B][COLOR=#000000]: [/COLOR]
[COLOR=#000000]int retrieve(int loc) [/COLOR]
[COLOR=#000000]{ [/COLOR]
[COLOR=#000000]node *cur=first; [/COLOR]
[B][COLOR=#006699]for[/COLOR][/B] [COLOR=#000000](int i=1; i<loc; i++) [/COLOR]
[COLOR=#000000]cur=cur->link; [/COLOR]
[B][COLOR=#006699]return[/COLOR][/B] [COLOR=#000000](cur->data); [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]void swap(int loc1,int loc2) [/COLOR]
[COLOR=#000000]{ [/COLOR]
[COLOR=#000000]node *node1=first; [/COLOR]
[COLOR=#000000]node *node2=first; [/COLOR]
[B][COLOR=#006699]for[/COLOR][/B] [COLOR=#000000](int i=1;i<loc1;i++) [/COLOR]
[COLOR=#000000]node1=node1->link; [/COLOR]
[B][COLOR=#006699]for[/COLOR][/B] [COLOR=#000000](int j=1;j<loc2;j++) [/COLOR]
[COLOR=#000000]node2=node2->link; [/COLOR]
[COLOR=#000000]int temp=node1->data; [/COLOR]
[COLOR=#000000]node1->data=node2->data; [/COLOR]
[COLOR=#000000]node2->data=temp; [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]void addfirst(int a) [/COLOR]
[COLOR=#000000]{ [/COLOR]
[COLOR=#000000]node *p=[/COLOR][B][COLOR=#006699]new[/COLOR][/B] [COLOR=#000000]node(); [/COLOR]
[COLOR=#000000]p->data=a; [/COLOR]
[COLOR=#000000]p->link=first; [/COLOR]
[COLOR=#000000]first=p; [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]void [/COLOR][COLOR=#ff1493]print[/COLOR][COLOR=#000000]() [/COLOR]
[COLOR=#000000]{ [/COLOR]
[B][COLOR=#006699]for[/COLOR][/B] [COLOR=#000000](node *q=first;q->link!=0;q=q->link) [/COLOR]
[COLOR=#000000]cout<<q->data<<[/COLOR][COLOR=#0000ff]"\t"[/COLOR][COLOR=#000000]; [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]void InsertionSort() [/COLOR]
[COLOR=#000000]{ [/COLOR]
[COLOR=#000000]int i,j,temp; [/COLOR]
[B][COLOR=#006699]for[/COLOR][/B] [COLOR=#000000]( i=1; i<10; i++) [/COLOR]
[COLOR=#000000]{ [/COLOR]
[COLOR=#000000]temp = retrieve(i); [/COLOR]
[B][COLOR=#006699]for[/COLOR][/B] [COLOR=#000000](j=i; j>0 && retrieve(j-1) > temp; j--) [/COLOR]
[COLOR=#000000]{ [/COLOR]
[COLOR=#000000]swap(j,j-1); [/COLOR]
[COLOR=#000000]temp = retrieve(j); [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]void SelectionSort() [/COLOR]
[COLOR=#000000]{ [/COLOR]
[COLOR=#000000]int maxsize=1; [/COLOR]
[B][COLOR=#006699]for[/COLOR][/B] [COLOR=#000000](int i=2;i<=10;i++) [/COLOR]
[COLOR=#000000]{ [/COLOR]
[B][COLOR=#006699]for[/COLOR][/B] [COLOR=#000000](int j=1;j<=i;j++) [/COLOR]
[COLOR=#000000]{ [/COLOR]
[B][COLOR=#006699]if[/COLOR][/B] [COLOR=#000000]((retrieve(i)) < (retrieve(j))) [/COLOR]
[COLOR=#000000]{ [/COLOR]
[COLOR=#000000]maxsize=j; [/COLOR]
[COLOR=#000000]swap(i,maxsize); [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]void BubbleSort() [/COLOR]
[COLOR=#000000]{ [/COLOR]
[B][COLOR=#006699]for[/COLOR][/B] [COLOR=#000000](int i=2;i<11;i++) [/COLOR]
[COLOR=#000000]{ [/COLOR]
[B][COLOR=#006699]for[/COLOR][/B] [COLOR=#000000](int j=1;j<i;j++) [/COLOR]
[COLOR=#000000]{ [/COLOR]
[B][COLOR=#006699]if[/COLOR][/B][COLOR=#000000]((retrieve(j))>(retrieve(j+1))) [/COLOR]
[COLOR=#000000]swap(j,(j+1)); [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]}; [/COLOR]
[COLOR=#000000]void menu(); [/COLOR]
[COLOR=#000000]int main() [/COLOR]
[COLOR=#000000]{ [/COLOR]
[COLOR=#000000]menu(); [/COLOR]
[COLOR=#000000]getch(); [/COLOR]
[B][COLOR=#006699]return[/COLOR][/B] [COLOR=#000000]0; [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]void menu() [/COLOR]
[COLOR=#000000]{ [/COLOR]
[COLOR=#000000]list mylist; [/COLOR]
[COLOR=#000000]int t,n[9],s,a; [/COLOR]
[COLOR=#000000]cout<<[/COLOR][COLOR=#0000ff]"\n\t\t\tThis program will sort 10 numbers\n\n"[/COLOR][COLOR=#000000]; [/COLOR]
[B][COLOR=#006699]for[/COLOR][/B][COLOR=#000000](int i=1;i<11;i++) [/COLOR]
[COLOR=#000000]{ [/COLOR]
[COLOR=#000000]cout<<[/COLOR][COLOR=#0000ff]"Please enter number"[/COLOR][COLOR=#000000]<<i<<[/COLOR][COLOR=#0000ff]":\t"[/COLOR][COLOR=#000000]; [/COLOR]
[COLOR=#000000]cin>>t; [/COLOR]
[COLOR=#000000]mylist.addfirst(t); [/COLOR]
[COLOR=#000000]n[i-1]=t; [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]cout<<[/COLOR][COLOR=#0000ff]"\n\nSelect a Sort Algorithm:\n\n"[/COLOR][COLOR=#000000]<<[/COLOR][COLOR=#0000ff]"\t1.Selection Sort <1>\n"[/COLOR][COLOR=#000000]<<[/COLOR][COLOR=#0000ff]"\t2.Bubble Sort <2>\n"[/COLOR][COLOR=#000000]<<[/COLOR][COLOR=#0000ff]"\t3.Insertion Sort <3>\n"[/COLOR][COLOR=#000000]; [/COLOR]
[COLOR=#000000]cin>>s; [/COLOR]
[B][COLOR=#006699]if[/COLOR][/B][COLOR=#000000](s=1) [/COLOR]
[COLOR=#000000]mylist.SelectionSort(); [/COLOR]
[B][COLOR=#006699]else[/COLOR][/B]
[COLOR=#000000]{ [/COLOR]
[B][COLOR=#006699]if[/COLOR][/B][COLOR=#000000](s=2) [/COLOR]
[COLOR=#000000]mylist.BubbleSort(); [/COLOR]
[B][COLOR=#006699]if[/COLOR][/B][COLOR=#000000](s=2) [/COLOR]
[COLOR=#000000]mylist.InsertionSort(); [/COLOR]
[B][COLOR=#006699]else[/COLOR][/B]
[COLOR=#000000]cout<<[/COLOR][COLOR=#0000ff]"error!!\tSelect an Algorithm,use 1 or 2"[/COLOR][COLOR=#000000]; [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]cout<<[/COLOR][COLOR=#0000ff]"\n\nPrevious sort was:\n"[/COLOR][COLOR=#000000]; [/COLOR]
[B][COLOR=#006699]for[/COLOR][/B][COLOR=#000000](int f=0;f<10;f++) [/COLOR]
[COLOR=#000000]cout<<n[f]<<[/COLOR][COLOR=#0000ff]"\t"[/COLOR][COLOR=#000000]; [/COLOR]
[COLOR=#000000]cout<<[/COLOR][COLOR=#0000ff]"\nCurrent sort is:\n"[/COLOR][COLOR=#000000]; [/COLOR]
[B][COLOR=#006699]for[/COLOR][/B][COLOR=#000000](int x=1;x<11;x++) [/COLOR]
[COLOR=#000000]cout<<mylist.retrieve(x)<<[/COLOR][COLOR=#0000ff]"\t"[/COLOR][COLOR=#000000]; [/COLOR]
[COLOR=#000000]cout<<[/COLOR][COLOR=#0000ff]"\n\n\tWhat you want to do?\n\n\t\t\t1.Sort some new numbers <1>\n\t\t\t2.Exit <2>\n\n\t\t\tEnter 1 or 2:\t"[/COLOR][COLOR=#000000]; [/COLOR]
[COLOR=#000000]cin>>a; [/COLOR]
[B][COLOR=#006699]if[/COLOR][/B][COLOR=#000000](a==1) [/COLOR]
[COLOR=#000000]menu(); [/COLOR]
[B][COLOR=#006699]else[/COLOR][/B]
[COLOR=#000000]{ [/COLOR]
[B][COLOR=#006699]if[/COLOR][/B][COLOR=#000000](a=2) [/COLOR]
[COLOR=#ff1493]exit[/COLOR][COLOR=#000000](0); [/COLOR]
[COLOR=#000000]} [/COLOR]
[COLOR=#000000]}[/COLOR]