100% found this document useful (1 vote)
1K views12 pages

Menu Driven Program For Single Linked List Operations

This C program implements a menu driven single linked list program with operations to create, display, insert and delete nodes from the beginning, end, and specified positions of the linked list. The main function contains a switch case to call the respective functions for each list operation selected by the user. Functions are defined to implement each linked list operation using appropriate pointer manipulations and memory allocations.

Uploaded by

Bandi Sirisha
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
100% found this document useful (1 vote)
1K views12 pages

Menu Driven Program For Single Linked List Operations

This C program implements a menu driven single linked list program with operations to create, display, insert and delete nodes from the beginning, end, and specified positions of the linked list. The main function contains a switch case to call the respective functions for each list operation selected by the user. Functions are defined to implement each linked list operation using appropriate pointer manipulations and memory allocations.

Uploaded by

Bandi Sirisha
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

/*MENU DRIVEN PROGRAM FOR SINGLE LINKED LIST OPERATIONS

1.CREATE

2.DISPLAY

3.INSERT AT BEGINNING

4.INSERT AT END

5.INSERT AT SPECIFIED POSITION

6.DELETE FROM BEGINNING

7.DELETE FROM END

8.DELETE FROM SPECIFIED POSITION

9.EXIT*/

#include<stdio.h>

#include<stdlib.h>

/*----Function Prototypes-----*/

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() //main() starts

int choice;

while(1){

printf("\n***SINGLE LINKED LIST OPERATIONS:****\n");

printf("\n MENU \n");

printf("---------------------------------------\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:\t");

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;

}//end of switch()

return 0;

}//end of main()

void create()

struct node *temp,*ptr;

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

if(temp==NULL)

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

exit(0);

printf("\nEnter 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;

}//end of create()

void display()

struct node *ptr;

if(start==NULL)

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

return;

else

ptr=start;

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

while(ptr!=NULL)

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

ptr=ptr->next ;
}//end of while

}//end of else

}//end of display()

void insert_begin()

struct node *temp;

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

if(temp==NULL)

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

return;

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

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

temp->next =NULL;

if(start==NULL)

start=temp;

else

temp->next=start;

start=temp;

}//end of insert_begin()
void insert_end()

struct node *temp,*ptr;

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

if(temp==NULL)

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

return;

printf("\nEnter 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;

}
}//end of insert_end

void insert_pos()

struct node *ptr,*temp;

int i,pos;

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

if(temp==NULL)

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

return;

printf("\nEnter the position for the new node to be inserted:\t");

scanf("%d",&pos);

printf("\nEnter the data value of the node:\t");

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("\nPosition not found:[Handle with care]\n");

return;

temp->next =ptr->next ;

ptr->next=temp;

}//end of else

}//end of insert_pos

void delete_begin()

struct node *ptr;

if(ptr==NULL)

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

return;

else

ptr=start;

start=start->next ;

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


free(ptr);

}//end of delete_begin()

void delete_end()

struct node *temp,*ptr;

if(start==NULL)

printf("\nList is Empty:");

exit(0);

else if(start->next ==NULL)

ptr=start;

start=NULL;

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

free(ptr);

else

ptr=start;

while(ptr->next!=NULL)

temp=ptr;

ptr=ptr->next;
}

temp->next=NULL;

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

free(ptr);

}//end of delete_begin()

void delete_pos()

int i,pos;

struct node *temp,*ptr;

if(start==NULL)

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

exit(0);

else

printf("\nEnter the position of the node to be deleted:\t");

scanf("%d",&pos);

if(pos==0)

ptr=start;

start=start->next ;

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

free(ptr);
}

else

ptr=start;

for(i=0;i<pos;i++)

temp=ptr;

ptr=ptr->next ;

if(ptr==NULL)

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

return;

temp->next =ptr->next ;

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

free(ptr);

}//end of else

You might also like