All C&DS Needs

Tell's You Everything

Write a C program that uses functions to perform the following operations on singly linked list.: Traversal

/* Write a program for creation of sorted list from a given list of numbers */

#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

About these ads

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 31 other followers

%d bloggers like this: