Linear Linked List for Data Structure in C language

February 07, 2015 , 0 Comments

  Linear Linked List


           External pointer ROOT is used to store  the address of the first node of the Linked List. So initially when the list is empty the ROOT contains a NULL (0) address.

When the first node is created dynamically memory is allocated to it. The address of that first node is store in ROOT. Another pointer variable TEMP is also used to store the address of first node. The pointer variable TEMP is used to point every time to the current node created so that to store the address of first node all the


            When next node is created, the LINK of the FIRST node is stored with its address. As TEMP points to FIRST node TEMP’s LINK field is copied with new node’s address and TEMP is updated to point to new node.

Similarly all the node are added to the linked list.

Algorithm to create a linear linked list.

      ROOT<--  NULL
      Repeat While CHOICE=’Y’
        If AVAIL=NULL Then:
          Write:’Memory Allocation Error’; Exit.
         NEW<-- AVAIL
         NEW--> LINK<-- NULL
         NEW--> INFO<-- Information
         [Information is the data to be stored in linked list]
         AVAIL<-- AVAIL--> LINK
       [End of it]
       If ROOT=NULL Then:
         ROOT<-- NEW
         TEMP<-- NEW
        TEMP--> LINK<-- NEW
        TEMP<--  NEW
      [End of it]
      Write: ‘Do you want to add another node?(Y/N)’
      Read: CHOICE
  [End of while]

C Program to create unordered Singly Linked List:
struct node
int info;
struct node *link;
};typedef struct node sn;
 sn *root, *temp, *new; char choice=’y’;
 printf(“Memory allocation error…”); exir(0);
 printf(“\nEnter node information :”);
  root=new;      temp=root;
  temp->link=new;  temp=new;
  printf(“Do you want to continue…(y/n)”);
 printf(“\nThe Singly linked list is:\n\n”);
 temp=root;                /*temp pointer is reused */
 printf(“%d”,temp->info);   temp=temp->link;

Bill Smithwick

Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard. Google