#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define OK 1
#define ERROR 0
typedef struct node{
int data;
node *next;
}node,*LinkList;
//node node5[5] = { {2},{4},{5},{7},{1} };
node *list_create(int num)
{
LinkList L,p,s;
L = (LinkList)malloc(sizeof(node));
if(!L)
return ERROR;
L->next = NULL;
p = L;
for(int i=0;i<num;i++)
{
s = (LinkList)malloc(sizeof(node));
scanf("%d",&s->data);
p->next = s;
p = p->next;
p->next = NULL;
}
//p->next = NULL;
return L;
}
int list_disp(LinkList L)
{
LinkList p;
p = L->next;
while(p!=NULL)
{
printf("\n%d",p->data);
p = p->next;
}
getchar();
return OK;
}
int list_sort(LinkList L,int num)
{
//LinkList p;
LinkList p=L->next;
int temp,i,j;
for(i=0;i<num-1;i++)
{
p = L->next;
for( j=0;j<num-i-1;j++)
{
if(p->data > p->next->data)
{
temp = p->data;
p->data = p->next->data;
p->next->data = temp;
}
p = p->next;
}
// p = p-1;直接减不行,p是结构体指针,长度不是1
}
printf("\n");
list_disp(L);
return OK;
}
int main()
{
int num=6;
LinkList head;
head = list_create(num);
list_disp(head);
list_sort(head,6);
getchar();
return 0;
}
单链表冒泡法从小到大排序
最新推荐文章于 2022-06-15 00:16:36 发布