Wednesday, 29 October 2014

Single Linked List - Inserting a node at the beginning

Aim:
To create a linked list and insert a node at beginning.

Program:
#include<stdio.h>
#include<conio.h>
#include<stdib.h>

struct slinkedlist
{
    int data;
    struct slinkedlist *next ;
  }
typedef struct slinkedlist node;
node *start = NULL;

node* getnode()
  {
    node *newnode;
    newnode = (node*)malloc(sizeof(node));
  printf("\n Enter data:");
  scanf("%d",&newnode->data);
newnode->next = NULL;
return newnode;
}

void createlist( int n )
  {
     int n;
     node *newnode;
     node *temp;
for( i=0;i<n;i++)
   {
      newnode = getnode ();
if( start == NULL)
   {
      start = newnode ;
    }
else
   {
      temp = start ;
while( temp->next != NULL )
    temp = temp->next;
    temp->next = newnode;
   }
}
}

void insert_beg ();
{  node *newnode;
    newnode = getnode() ;
   if ( start == NULL)
      {
         start = newnode;
      }
   else
      {
         newnode->next = start;
          start = newnode;
      }
  }     

void main ()
{
    int n,num;
    if( start == NULL)
{
   printf("\n Enter Number of nodes to creatlinked list:");
   scanf("%d",&newnode->data);
creatlist( n );
}
  else
printf("\n Linked list is created");

printf("\n Enter 1 to insert a node at beginning:");
scanf("%d",&num);
if( num == 1)
      insert_beg ();
else
   printf("\nYou not intrested to insert a node at beginning:");

}
      

No comments:

Post a Comment