//Basic Link List Operation
#include<stdio.h>
#include<malloc.h>
typedef struct list
{
int data;
struct list *next;
}node;
int count=0;
node *START=NULL;
insert(int i)
{
node *tmp,*q;
tmp=(node*)malloc(sizeof(node));
tmp->next=NULL;
tmp->data=i;
if(START==NULL)
{
START=tmp;
count++;
}else
{
q=START;
while(q->next!=NULL)
{
q=q->next;
}
q->next=tmp;
count++;
}
}
display()
{
node *q;
if(START==NULL)
{
printf("\nList IS Empty");
}else
{
q=START;
while(q!=NULL)
{
printf("\t%d",q->data);
q=q->next;
}
}
}
int search(int i)
{
int flag=0;
node *q;
if(START==NULL)
{
printf("\nList IS Empty");
}else
{
q=START;
while(q!=NULL)
{
if(q->data==i)
{
flag=1;
}
printf("\t%d",q->data);
q=q->next;
}
}
return flag;
}
int delete(int i)
{
int flag=0;
node *q;
if(START==NULL)
{
printf("\nList IS Empty");
}else
{
q=START;
if(q->data==i)
{
START=q->next;
flag=1;
count--;
}
q=START;
while(q->next->next!=NULL)
{
if(q->next->data==i)
{
q->next=q->next->next;
flag=1;
count--;
}
q=q->next;
}
if(q->next->data==i)
{
q->next=NULL;
flag=1;
count--;
}
}
return flag;
}
int main()
{
int ch,f=0;
//clrscr();//Optional
while(f<=1)
{
printf("\n1. INSERT VALUE\n2. DISPLAY \n3. SEARCH\n4. DELETE\n5. COUNT");
scanf("%d",&ch);
switch(ch)
{
case 1:
printf("\nEnter Element");
scanf("%d",&ch);
insert(ch);
//getch(); //Optional
break;
case 2:
display();
//getch();//Optional
break;
case 3:
printf("\nEnter Element to SEARCH");
scanf("%d",&ch);
if(search(ch)==1)
{
printf("\nRecord Found");
}else
{
printf("\nRecord not found");
}
break;
//getch(); //Optional
case 4:
printf("\nEnter Element to DELETE");
scanf("%d",&ch);
if(delete(ch)==1)
{
printf("\nRecord(s) Deleted");
}else
{
printf("\nRecord not found");
}
break;
//exit();//Optional
case 5:
printf("No of records :: %d",count);
break;
default:
printf("\nWrong Input");
}
}
}
#include<malloc.h>
typedef struct list
{
int data;
struct list *next;
}node;
int count=0;
node *START=NULL;
insert(int i)
{
node *tmp,*q;
tmp=(node*)malloc(sizeof(node));
tmp->next=NULL;
tmp->data=i;
if(START==NULL)
{
START=tmp;
count++;
}else
{
q=START;
while(q->next!=NULL)
{
q=q->next;
}
q->next=tmp;
count++;
}
}
display()
{
node *q;
if(START==NULL)
{
printf("\nList IS Empty");
}else
{
q=START;
while(q!=NULL)
{
printf("\t%d",q->data);
q=q->next;
}
}
}
int search(int i)
{
int flag=0;
node *q;
if(START==NULL)
{
printf("\nList IS Empty");
}else
{
q=START;
while(q!=NULL)
{
if(q->data==i)
{
flag=1;
}
printf("\t%d",q->data);
q=q->next;
}
}
return flag;
}
int delete(int i)
{
int flag=0;
node *q;
if(START==NULL)
{
printf("\nList IS Empty");
}else
{
q=START;
if(q->data==i)
{
START=q->next;
flag=1;
count--;
}
q=START;
while(q->next->next!=NULL)
{
if(q->next->data==i)
{
q->next=q->next->next;
flag=1;
count--;
}
q=q->next;
}
if(q->next->data==i)
{
q->next=NULL;
flag=1;
count--;
}
}
return flag;
}
int main()
{
int ch,f=0;
//clrscr();//Optional
while(f<=1)
{
printf("\n1. INSERT VALUE\n2. DISPLAY \n3. SEARCH\n4. DELETE\n5. COUNT");
scanf("%d",&ch);
switch(ch)
{
case 1:
printf("\nEnter Element");
scanf("%d",&ch);
insert(ch);
//getch(); //Optional
break;
case 2:
display();
//getch();//Optional
break;
case 3:
printf("\nEnter Element to SEARCH");
scanf("%d",&ch);
if(search(ch)==1)
{
printf("\nRecord Found");
}else
{
printf("\nRecord not found");
}
break;
//getch(); //Optional
case 4:
printf("\nEnter Element to DELETE");
scanf("%d",&ch);
if(delete(ch)==1)
{
printf("\nRecord(s) Deleted");
}else
{
printf("\nRecord not found");
}
break;
//exit();//Optional
case 5:
printf("No of records :: %d",count);
break;
default:
printf("\nWrong Input");
}
}
}
Comments
Post a Comment