clanguage07@gmail.com

clanguage07@gmail.com

Saturday, June 16, 2012

Write a program for creation of sorted list from a given list of numbers .

program:

#include <stdio.h>
#include <stdlib.h>
#define NULL 0
struct linked_list
{
int number;
struct linked_list *next;
};
typedef struct linked_list node;
main ()
{
int n;
node *head = NULL;
void print(node *p);
node *insert_Sort(node *p, int n);
printf("Input the list of numbers.\n");
printf("At end, type -999.\n");
scanf("%d",&n); while(n != -999)
{
if(head == NULL) /* create 'base' node */
{
head = (node *)malloc(sizeof(node));
head ->number = n;
head->next = NULL;
}
else /* insert next item */
{
head = insert_sort(head,n);
}
scanf("%d", &n);
}
printf("\n");
print(head);
print("\n");
}
node *insert_sort(node *list, int x)
{
node *p1, *p2, *p;
p1 = NULL;
p2 = list; /* p2 points to first node */
for( ; p2->number < x ; p2 = p2-<next)
{
p1 = p2;
if(p2->next == NULL)
{
p2 = p2->
next; /* p2 set to NULL */
break; /* insert new node at end */
}
} /* key node found */
p = (node *)malloc(sizeof(node)); /* space for new node */
p->
number = x; /* place value in the new node */
p->
next = p2; /* link new node to key node */
if (p1 == NULL)
list = p; /* new node becomes the first node */
else p1->
next = p; /* new node inserted after 1st node */
return (list);
}
void print(node *list)
{
if (list == NULL)
printf("NULL");
else
{
printf("%d-->",list->number);
print(list->next);
}
return;
}

Output:
Input the list of number.
At end, type -999.
80 70 50 40 60 -999
40-->50-->60-->70-->80 -->NULL
Input the list of number.
At end, type -999.
40 70 50 60 80 -999
40-->50-->60-->70-->80-->NULL

No comments:

Post a Comment

GET MORE INFORMATION

http://ads.qadservice.com/t?id=c2168e05-8974-4816-872a-91936ff7379d&size=1024x768&drct=true