链表排序问题
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~最近一直断断续续地在学习着链表,链表的插入数据一般都要用到排序。在网上搜了几个链表排序的代码,不甚明了,也未能释疑。哪位仁兄能略微详细——或者是通俗一些地讲解一下?最好能帖上个链表排序的函数代码上来,不胜感激。谢谢。
/******************************************************************************* 将1-8任意填入下列方格(中间格不填) □ □ □ □ □ □ □ □ □ 编程实现 填入的数字由小到大顺序排列 如 8 7 6 1 5 2 3 4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 暂时想不出更好的办法,所以就用最原始的办法来解决。还请各位多多包涵。 *******************************************************************************/ #include<stdio.h> int main(void) { int i,j,k; int a[16]={8,7,6,5,4,3,2,1,8,7,6,5,4,3,2,1}; int b[8]; int c[10]; printf("请输入1~8任意数字,0退出:\n"); while(9) { scanf("%d",&k); if(k==0) break; system("cls"); for(i=0;i<16;i++) if(k==a[i]) { k=i; break;} for(j=0;j<8;j++) b[j]=a[j+k]; for(i=0;i<3;i++) c[i+1]=b[i]; c[4]=b[7]; c[6]=b[3]; c[7]=b[6]; c[8]=b[5]; c[9]=b[4]; for(i=1;i<10;i++) { if(i==5) { printf(" "); i++; } printf("%2d",c[i]); if(i%3==0) printf("\n"); } printf("请输入1~8任意数字,0退出:\n"); } }