0% found this document useful (0 votes)
19 views

Linked List Operations

This C program implements operations on a singly linked list including creation, insertion, and deletion. It contains functions to create a linked list, display the list, insert nodes at the beginning, end, or a specified position, and delete nodes from the beginning, end, or a specified position.

Uploaded by

PRO-STER
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

Linked List Operations

This C program implements operations on a singly linked list including creation, insertion, and deletion. It contains functions to create a linked list, display the list, insert nodes at the beginning, end, or a specified position, and delete nodes from the beginning, end, or a specified position.

Uploaded by

PRO-STER
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 12

Write a C program to implement operations of singly Linked List: Creation,

insertion, and deletion


#include<stdlib.h>

#include <stdio.h>

void create();

void display();

void insert_begin();

void insert_end();

void insert_pos();

void delete_begin();

void delete_end();

void delete_pos();

struct node

int info;

struct node *next;

};

struct node *start=NULL;

int main()

int choice;

while(1){

printf("\n MENU n");

printf("\n 1.Create \n");

printf("\n 2.Display \n");


printf("\n 3.Insert at the beginning \n");

printf("\n 4.Insert at the end \n");

printf("\n 5.Insert at specified position \n");

printf("\n 6.Delete from beginning \n");

printf("\n 7.Delete from the end \n");

printf("\n 8.Delete from specified position \n");

printf("\n 9.Exit \n");

printf("n--------------------------------------n");

printf("Enter your choice: ");

scanf("%d",&choice);

switch(choice)

case 1:

create();

break;

case 2:

display();

break;

case 3:

insert_begin();

break;

case 4:

insert_end();

break;

case 5:
insert_pos();

break;

case 6:

delete_begin();

break;

case 7:

delete_end();

break;

case 8:

delete_pos();

break;

case 9:

exit(0);

break;

default:

printf("n Wrong Choice:n");

break;

return 0;

void create()

struct node *temp,*ptr;

temp=(struct node *)malloc(sizeof(struct node));


if(temp==NULL)

printf("\n Out of Memory Space:\n");

exit(0);

printf("\n Enter the data value for the node:\t");

scanf("%d",&temp->info);

temp->next=NULL;

if(start==NULL)

start=temp;

else

ptr=start;

while(ptr->next!=NULL)

ptr=ptr->next;

ptr->next=temp;

void display()

struct node *ptr;


if(start==NULL)

printf("\n List is empty:\n");

return;

else

ptr=start;

printf("\n The List elements are:\n");

while(ptr!=NULL)

printf("%d ",ptr->info );

ptr=ptr->next ;

void insert_begin()

struct node *temp;

temp=(struct node *)malloc(sizeof(struct node));

if(temp==NULL)

printf("\n Out of Memory Space:\n ");

return;

}
printf("\n Enter the data value for the node: " );

scanf("%d",&temp->info);

temp->next =NULL;

if(start==NULL)

start=temp;

else

temp->next=start;

start=temp;

void insert_end()

struct node *temp,*ptr;

temp=(struct node *)malloc(sizeof(struct node));

if(temp==NULL)

printf("\n Out of Memory Space:\n");

return;

printf("\n Enter the data value for the node: " );

scanf("%d",&temp->info );

temp->next =NULL;
if(start==NULL)

start=temp;

else

ptr=start;

while(ptr->next !=NULL)

ptr=ptr->next ;

ptr->next =temp;

void insert_pos()

struct node *ptr,*temp;

int i,pos;

temp=(struct node *)malloc(sizeof(struct node));

if(temp==NULL)

printf("\n Out of Memory Space:\n");

return;

printf("\n Enter the position for the new node to be inserted: ");
scanf("%d",&pos);

printf("\n Enter the data value of the node: ");

scanf("%d",&temp->info) ;

temp->next=NULL;

if(pos==0)

temp->next=start;

start=temp;

else

for(i=0,ptr=start;i<pos-1;i++) { ptr=ptr->next;

if(ptr==NULL)

printf("\n Position not found:[Handle with care]\n");

return;

temp->next =ptr->next ;

ptr->next=temp;

void delete_begin()

struct node *ptr;


if(ptr==NULL)

printf("\n List is Empty:\n");

return;

else

ptr=start;

start=start->next ;

printf("\n The deleted element is :%d ",ptr->info);

free(ptr);

void delete_end()

struct node *temp,*ptr;

if(start==NULL)

printf("\n List is Empty:");

exit(0);

else if(start->next ==NULL)

ptr=start;

start=NULL;
printf("\n The deleted element is:%d ",ptr->info);

free(ptr);

else

ptr=start;

while(ptr->next!=NULL)

temp=ptr;

ptr=ptr->next;

temp->next=NULL;

printf("\n The deleted element is:%d ",ptr->info);

free(ptr);

void delete_pos()

int i,pos;

struct node *temp,*ptr;

if(start==NULL)

printf("\n The List is Empty:\n");

exit(0);

}
else

printf("\n Enter the position of the node to be deleted: ");

scanf("%d",&pos);

if(pos==0)

ptr=start;

start=start->next ;

printf("\n The deleted element is:%d ",ptr->info );

free(ptr);

else

ptr=start;

for(i=0;i<pos;i++) { temp=ptr; ptr=ptr->next ;

if(ptr==NULL)

printf("\n Position not Found:\n");

return;

temp->next =ptr->next ;

printf("\n The deleted element is:%d ",ptr->info );

free(ptr);

}
}

You might also like