#include <stdio.h>
#include <stdlib.h>
struct node
{
int data;
struct node *next;
};
struct node* create_list (int a[],int len)
{
struct node *phead;
struct node *ptr;
struct node *pre;
phead= (struct node *) malloc (sizeof (struct node));
int i=0;
phead->data=a[i];
phead->next=null;
ptr=phead->next;
Pre=phead;
for (i=1;i<len;i++)
{
ptr= (struct node *) malloc (sizeof (struct node));
ptr->data=a[i];
ptr->next=null;
pre->next=ptr;
ptr=ptr->next;
pre=pre->next;
}
return phead;
}
void Print_list (struct node *phead)
{
struct node *ptr=phead;
while (ptr! = NULL)
{
printf ("%d", ptr->data);
ptr=ptr->next;
}
printf ("\ n");
}
struct node *bubble (struct node *phead,int len)
{
struct node *ptr,*next;
int temp;
for (int i=0;i<len;i++)
{
Ptr=phead;
next=ptr->next;
for (int j=len-i-1;j>0;j--)
{
if (Ptr->data > Next->data)
{
temp=ptr->data;
ptr->data=next->data;
next->data=temp;
}
ptr=ptr->next;
next=next->next;
}
Print_list (Phead);
}
return phead;
}
int main ()
{
int a[10]={
5,3,6,8,9,6,5,4,2,7
};
struct node *phead;
Phead=create_list (a,10);
Print_list (Phead);
Phead=bubble (phead,10);
Print_list (Phead);
}
Single-linked list bubble sort