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 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;
}
}
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.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;
}
}