void ListOrder_L(LinkList head)
{
LinkList tp,m;
ElemType bei;
tp=head->next;
m=tp->next;
while(tp!=NULL)
while(m!=NULL)
{
if(tp->data<m->data)
{
bei=tp->data;
tp->data=m->data;
m->data=bei;
m=m->next;
}
else
{
m=m->next;
}
}
tp=tp->next;
m=tp->next;
}
自己写的一个排序函数,给输入的字符进行排序
int main()
{
int i;
char cmd,e;
LinkList head;
head=(LinkList)malloc(sizeof(LNode));
head->next=NULL;
CreateList_L(head);
ListPint_L(head);
do
{printf("i,I...插入\n");
printf("d,D...删除\n");
printf("q,Q...退出\n");
printf("o,O...排序\n");
do
{
fflush(stdin);
scanf("%c",&cmd);
}while((cmd!='d')&&(cmd!='D')&&(cmd!='q')&&(cmd!='Q')&&(cmd!='i')&&(cmd!='I')&&(cmd!='o')&&(cmd!='O'));
switch(cmd)
{
case 'i':
case 'I':
printf("请输入你要插入的数据:");
fflush(stdin);
scanf("%c",&e);
printf("请输入你要插入的位置:");
scanf("%d",&i);
ListInsert_L(head,i,e);
ListPint_L(head);
break;
case 'd':
case 'D':
printf("请输入你要删除元素的位置:");
fflush(stdin);
scanf("%d",&i);
ListDel_L(head,i);
ListPint_L(head);
break;
case 'o':
case 'O':
ListOrder_L(head);
break;
}
}while((cmd!='q')&&(cmd!='Q'));
return 1;
}
这是程序,执行的时候输入O与o就没反应了