在数据结构中用c语言怎么编写用单链表将26个字母排序的程序?

如题所述

第1个回答  2012-03-10
#include <stdio.h>
#include <stdlib.h>

//申明链表
typedef struct node
{
char num;
struct node *next;
}list;

void Bubble_sort(list *L);//链表的冒泡排序
void Dis_list(list *L);//遍历单链表

int main()
{
//建表
list *r,*s,*p;
int n=26;//存储数据的个数
s=NULL;
for(int i='Z';i>='A';i--)
{
r=(list *)malloc(sizeof(list));
r->num = i;
if(!s){s=r;p=s;}
p->next=r;
p=r;
}
p->next=NULL;
printf("排序前:\t");
Dis_list(s);
//排序
Bubble_sort(s);
printf("排序后:\t");
Dis_list(s);
return 0;
}

void Dis_list(list *L)
{
list *r;
r=L;
while(r!=NULL)
{
printf("%c\t",r->num);
r=r->next;
}
printf("\n");
}

void Bubble_sort(list *L)
{
list *r,*s;
char temp;
for(r=L;r;r=r->next)
{
for(s=r;s;s=s->next)
{
if(r->num>s->num)
{
temp=r->num;
r->num=s->num;
s->num=temp;
}
}
}
}
相似回答