c语言中怎么用链表选择排序????
答案:1 悬赏:20 手机版
解决时间 2021-02-14 19:38
- 提问者网友:泪痣哥哥
- 2021-02-14 15:45
c语言中怎么用链表选择排序????
最佳答案
- 五星知识达人网友:千夜
- 2021-02-14 16:33
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node *next;
}*Linklist,Node;
Linklist creat(int n)
{
Linklist head,r,p;
int x,i;
head=(Node*)malloc(sizeof(Node));
r=head;
printf("输入数字:\n");
for(i=n;i>0;i--)
{
scanf("%d",&x);
p=(Node*)malloc(sizeof(Node));
p->data=x;
r->next=p;
r=p;
}
r->next=NULL;
return head;
}
void output(Linklist head)
{
Linklist p;
p=head->next;
do
{
printf("%8d",p->data);
p=p->next;
}while(p);
printf("\n");
}
void paixu(Linklist head)
{
Linklist p,q,small;
int temp;
for(p=head->next;p->next!=NULL;p=p->next)
{
small=p;
for(q=p->next;q;q=q->next)
if(q->data<small->data)
small=q;
if(small!=p)
{
temp=p->data;
p->data=small->data;
small->data=temp;
}
}
printf("输出排序后的数字:\n");
output(head);
}
void main()
{
Linklist head;
int n;
printf("输入数字的个数(n):\n");
scanf("%d",&n);
head=creat(n);
printf("输出数字:\n");
output(head);
paixu(head);
}
#include<stdlib.h>
typedef struct node
{
int data;
struct node *next;
}*Linklist,Node;
Linklist creat(int n)
{
Linklist head,r,p;
int x,i;
head=(Node*)malloc(sizeof(Node));
r=head;
printf("输入数字:\n");
for(i=n;i>0;i--)
{
scanf("%d",&x);
p=(Node*)malloc(sizeof(Node));
p->data=x;
r->next=p;
r=p;
}
r->next=NULL;
return head;
}
void output(Linklist head)
{
Linklist p;
p=head->next;
do
{
printf("%8d",p->data);
p=p->next;
}while(p);
printf("\n");
}
void paixu(Linklist head)
{
Linklist p,q,small;
int temp;
for(p=head->next;p->next!=NULL;p=p->next)
{
small=p;
for(q=p->next;q;q=q->next)
if(q->data<small->data)
small=q;
if(small!=p)
{
temp=p->data;
p->data=small->data;
small->data=temp;
}
}
printf("输出排序后的数字:\n");
output(head);
}
void main()
{
Linklist head;
int n;
printf("输入数字的个数(n):\n");
scanf("%d",&n);
head=creat(n);
printf("输出数字:\n");
output(head);
paixu(head);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯