Search

Saturday, February 7, 2015
0 comments

Linear Linked List for Data Structure in C language

6:17 PMSaturday, February 7, 2015
  Linear Linked List

Creation:

           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
time.

 

            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.

      CREATELL
      ROOT<--  NULL
      CHOICE<--‘Y’
      Repeat While CHOICE=’Y’
        If AVAIL=NULL Then:
          Write:’Memory Allocation Error’; Exit.
        Else:
         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
      Else:
        TEMP--> LINK<-- NEW
        TEMP<--  NEW
      [End of it]
      Write: ‘Do you want to add another node?(Y/N)’
      Read: CHOICE
  [End of while]
Exit.

C Program to create unordered Singly Linked List:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
struct node
{
int info;
struct node *link;
};typedef struct node sn;
main()
{
 sn *root, *temp, *new; char choice=’y’;
 root=NULL;
 while(choice==’y’)
 {
 new=(sn*)malloc(sizeof(sn));
 if(new==NULL)
 {
 printf(“Memory allocation error…”); exir(0);
 }
 new->link=NULL;
 printf(“\nEnter node information :”);
 scanf(“%d”,&new->info);
 if(root==NULL)
 {
  root=new;      temp=root;
  }
else
 {
  temp->link=new;  temp=new;
 }
  printf(“Do you want to continue…(y/n)”);
  choice=getche();
 }
 printf(“\nThe Singly linked list is:\n\n”);
 temp=root;                /*temp pointer is reused */
 while(temp!=NULL)
 {
 printf(“%d”,temp->info);   temp=temp->link;
 }
}

Protected by Copyscape Online Copyright Protection Software

0 comments :

Post a Comment

 
Toggle Footer
Top