Referred From : PRITHVIRAJ JAIN
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct node
{
int sem;
char name[20],usn[20],branch[10],phno[11];
struct node *link;
}*start=NULL,*last=NULL,*new,*ptr,*cur;
void create()
{
int sem;
char name[20],usn[20],branch[10],phno[11];
printf("ENTER STUDENT NAME , USN , BRANCH , SEM , PHONE NO.\n");
scanf("%s%s%s%d%s",name,usn,branch,&sem,phno);
new=(struct node *)malloc(sizeof(struct node));
new->link=NULL;
strcpy(new->name,name);
strcpy(new->usn,usn);
strcpy(new->branch,branch);
strcpy(new->phno,phno);
new->sem=sem;
}
void insertbeg()
{
create();
if(start==NULL)
{
start=new;
last=new;
}
else
{
new->link=start;
start=new;
}
}
void insertend()
{
create();
if(start==NULL)
{
start=new;
last=new;
}
else
{
last->link=new;
last=new;
}
}
void display()
{
int count=0;
if(start==NULL)
printf("LIST IS EMPTY\n");
else
{
ptr=start;
printf("THE STUDENT DETAILS ARE :\n");
printf("NAME\t\tUSN\t\tBRANCH\tSEM\t\tPHONE NO.\n");
while(ptr!=NULL)
{
printf("%s\t\t%s\t%s\t%d\t\t%s\n",ptr->name,ptr->usn,ptr->branch,ptr->sem,ptr->phno);
ptr=ptr->link;
count++;
}
printf("THE NUMBER OF NODES PRESENT IS : %d\n",count);
}
}
void deletebeg()
{
if(start==NULL)
printf("NOTHING TO DELETE\n");
else if(start->link==NULL)
{
ptr=start;
start=NULL;
}
else
{
ptr=start;
start=start->link;
}
printf("THE DELETED STUDENT DETAILS ARE :\n");
printf("NAME\t\tUSN\t\tBRANCH\tSEM\t\tPHONE NO.\n");
printf("%s\t\t%s\t%s\t%d\t\t%s\n",ptr->name,ptr->usn,ptr->branch,ptr->sem,ptr->phno);
free(ptr);
}
void deleteend()
{
if(start==NULL)
printf("NOTHING TO DELETE\n");
else if(start->link==NULL)
{
ptr=start;
start=NULL;
}
else
{
ptr=start;
while(ptr->link!=last)
ptr=ptr->link;
last=ptr;
ptr=ptr->link;
last->link=NULL;
}
printf("THE DELETED STUDENT DETAILS ARE :\n");
printf("NAME\t\tUSN\t\tBRANCH\tSEM\t\tPHONE NO.\n");
printf("%s\t\t%s\t%s\t%d\t\t%s\n",ptr->name,ptr->usn,ptr->branch,ptr->sem,ptr->phno);
free(ptr);
}
void deletesecond()
{
if(start==NULL||start->link==NULL)
printf("UNABLE TO DELETE\n");
else
{
cur=start;
ptr=start->link;
printf("THE DELETED STUDENT DETAILS ARE :\n");
printf("NAME\t\tUSN\t\tBRANCH\tSEM\t\tPHONE NO.\n");
printf("%s\t\t%s\t%s\t%d\t\t%s\n",ptr->name,ptr->usn,ptr->branch,ptr->sem,ptr->phno);
cur->link=ptr->link;
free(ptr);
}
}
void search()
{
char usn[20];
printf("ENTER USN :\n");
scanf("%s",usn);
if(start==NULL)
{
printf("SEARCH UNSUCCESSFUL\n");
return;
}
ptr=start;
while(ptr!=NULL)
{
if(strcmp(ptr->usn,usn)==0)
{
printf("THE STUDENT DETAILS IS :\n");
printf("NAME\t\tUSN\t\tBRANCH\tSEM\t\tPHONE NO.\n");
printf("%s\t\t%s\t%s\t%d\t\t%s\n",ptr->name,ptr->usn,ptr->branch,ptr->sem,ptr->phno);
return;
}
ptr=ptr->link;
}
printf("SEARCH UNSUCCESSFUL\n");
}
void main()
{
int choice,i,n;
while(1)
{
printf("\n---------MENU---------\n");
printf("\n1. INSERT DETAILS OF N STUDENTS\n2. INSERT STUDENT DETAILS AT BEGINNING\n");
printf("3. INSERT STUDENT DETAILS AT END\n4. DELETE STUDENT DETAILS FROM BEGINNING\n");
printf("5. DELETE STUDENT DETAILS FROM END\n6. DELETE SECOND STUDENT DETAILS\n");
printf("7. DISPLAY\n8. SEARCH\n9. EXIT\n");
printf("\nENTER YOUR CHOICE\n");
scanf("%d",&choice);
switch(choice)
{
case 1:printf("ENTER THE NO. OF STUDENTS\n");
scanf("%d",&n);
for(i=0;i<n;i++)
insertend();
break;
case 2:insertbeg();
break;
case 3:insertend();
break;
case 4:deletebeg();
break;
case 5:deleteend();
break;
case 6:deletesecond();
break;
case 7:display();
break;
case 8:search();
break;
case 9:exit(0);
default:printf("INVALID CHOICE\n");
}
}
}
Referred From : GURUPRASAD M S
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void read();
void insertatfront();
void deleteatfront();
void insertatend();
void deleteatend();
void display();
struct node
{
char usn[20],name[20],branch[20];
int sem,ph;
struct node* link;
};
struct node* root=NULL;
struct node* temp=NULL;
void main()
{
int ch,n;
while(1)
{
printf("\n********MENU*********");
printf("\n\n1.CREATE A SLL OF N STUDENTS
USING FRONT INSERTION \n 2.INSERT AT FRONT \n3.DELETE AT FRONT\n4.INSERT
AT END\n5.DELETE AT END\n6.DISPLAY
\n7.EXIT\n\n");
printf("Enter your choice\n");
scanf("%d",&ch);
switch(ch)
{
case 1:printf("Enter the Number of students\n");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
insertatfront();
}
break;
case 2:insertatfront();break;
case 3:deleteatfront();break;
case 4:insertatend();break;
case 5:deleteatend();break;
case 6:display();break;
case 7:exit(0);
default:printf("*********ENTER A VALID CHOICE**********\n");
}
}
}
void read()
{
char usn[20],name[20],branch[20];
int sem,ph;
temp=root;
temp=(struct node*)malloc(sizeof(struct node));
printf("\n ENTER THE NAME,USN,BRANCH,SEM,PHONE NO OF STUDENT\n");
scanf("%s %s %s %d %d",name,usn,branch,&sem,&ph);
strcpy(temp->name,name);
strcpy(temp->usn,usn);
strcpy(temp->branch,branch);
temp->sem=sem;
temp->ph=ph;
}
void insertatfront()
{
read();
temp->link=root;
root=temp;
}
void display()
{
int num=0;
temp=root;
if(root==NULL)
{
printf("\nSTUDENT DETAILS NOT FOUND\n");
}
else
{
printf("DETAILS OF STUDENT:\n");
while(temp!=NULL)
{
printf("%s %s %s %d %d \n",temp->name,temp->usn,temp->branch,temp->sem,temp->ph);
temp=temp->link;
num=num+1;
}
printf("NUMBER OF NODES=%d\n",num);
}
}
void deleteatfront()
{
temp=root;
if(root==NULL)
{
printf("\n*************STUDENT DETAILS NOT FOUND********************\n");
return;
}
else
{
printf("DETAILS OF DELETED STUDENT:\n");
printf("%s %s %s %d %d \n",temp->name,temp->usn,temp->branch,temp->sem,temp->ph);
free(root);
root=temp->link;
return;
}
}
void insertatend()
{
read();
temp->link=NULL;
if(root==NULL)
{
root=temp;
}
else
{
struct node* p;
p=root;
while(p->link!=NULL)
{
p=p->link;
}
p->link=temp;
}
}
void deleteatend()
{
struct node* cur;
struct node* pre;
if(root==NULL)
{
printf("\n**************STUDENT DETAILS NOT FOUND**********\n");
return;
}
else if(root->link==NULL)
{
printf("%s %s %s %d %d",root->name,root->usn,root->branch,root->sem,root->ph);
free(root);
root=NULL;
return;
}
else
{
cur=root;
while(cur->link!=NULL)
{
pre=cur;
cur=cur->link;
}
printf("\nDETAILS OF DELETED STUDENT:\n");
printf("%s %s %s %d %d \n",cur->name,cur->usn,cur->branch,cur->sem,cur->ph);
free(cur);
pre->link=NULL;
return;
}
}