#include<stdio.h>
#include<conio.h>
#include<malloc.h>
struct node
{
int info;
struct node *link;
};
typedef struct node NODE;
void creation(NODE *);
void display(NODE *);
NODE *display_beg(NODE *);
void deletion_end(NODE *);
void deletion_pos(NODE *);
main()
{
NODE *head;
char ch;
head=(NODE *)malloc(sizeof(NODE));
clrscr();
while(1)
{
printf("\n*** single linked poeration *** \n");
printf("\n 1.creation");
printf("\n 2.delete at begining \n");
printf("\n 3.delete at end \n");
printf("\n 4.delete at desire position");
printf("\n 5.display");
printf("\n 6.exit");
printf("\n Enter a choice");
scanf("%d",&ch);
switch(ch)
{
case 1:creation(head);
break;
case 2:delete_beg(head);
break;
case 3:delete_end(head);
break;
case 4:delete_pos(head);
break;
case 5:dispaly(head);
break;
case 6:exit(0);
}
}
}
void creation(NODE *currptr)
{
NODE *newnode;
char ch;
while(1)
{
printf("Enter info :");
scanf("%d",&currptr->info);
printf("\n do u want to continue :(Y/N)\n");
fflush(stdin);
ch=getchar();
if(toupper(ch)=='y')
{
newnode=(NODE *)malloc(sizeof(NODE));
currptr->link=newnode;
currptr=newnode;
}
else
{
currptr->link=NULL;
}
}
}
void display(NODE *currptr)
{
printf("\n");
while(currptr!=NULL)
{
printf("%d",currptr->info);
printf("->");
currptr=currptr->link;
}
printf("NULL");
}
NODE *deletion_beg(NODE *currptr)
{
printf("\n before deletion : ");
display(currptr);
currptr=currptr->link;
printf("\n after deletion :");
display(currptr);
return(currptr);
}
void deletion_end(NODE *currptr)
{
NODE *temp;
NODE *start=currptr;
printf("\n before delete :");
display(currptr);
temp=currptr;
while(currptr->link!=NULL)
{
temp=currptr;
currptr=currptr->link;
}
temp->link=NULL;
printf("\n after deletion :");
display(start);
}
void deletion_pos(NODE *currptr)
{
int i,pos;
NODE *temp;
printf("\n before deletion :");
display(currptr);
printf("Enter the pos to inserted :");
scanf("%d",&pos);
for(i=1;i<pos;i++)
{
temp=currptr;
currptr=currptr->link;
}
temp->link=currptr->link;
}
#include<conio.h>
#include<malloc.h>
struct node
{
int info;
struct node *link;
};
typedef struct node NODE;
void creation(NODE *);
void display(NODE *);
NODE *display_beg(NODE *);
void deletion_end(NODE *);
void deletion_pos(NODE *);
main()
{
NODE *head;
char ch;
head=(NODE *)malloc(sizeof(NODE));
clrscr();
while(1)
{
printf("\n*** single linked poeration *** \n");
printf("\n 1.creation");
printf("\n 2.delete at begining \n");
printf("\n 3.delete at end \n");
printf("\n 4.delete at desire position");
printf("\n 5.display");
printf("\n 6.exit");
printf("\n Enter a choice");
scanf("%d",&ch);
switch(ch)
{
case 1:creation(head);
break;
case 2:delete_beg(head);
break;
case 3:delete_end(head);
break;
case 4:delete_pos(head);
break;
case 5:dispaly(head);
break;
case 6:exit(0);
}
}
}
void creation(NODE *currptr)
{
NODE *newnode;
char ch;
while(1)
{
printf("Enter info :");
scanf("%d",&currptr->info);
printf("\n do u want to continue :(Y/N)\n");
fflush(stdin);
ch=getchar();
if(toupper(ch)=='y')
{
newnode=(NODE *)malloc(sizeof(NODE));
currptr->link=newnode;
currptr=newnode;
}
else
{
currptr->link=NULL;
}
}
}
void display(NODE *currptr)
{
printf("\n");
while(currptr!=NULL)
{
printf("%d",currptr->info);
printf("->");
currptr=currptr->link;
}
printf("NULL");
}
NODE *deletion_beg(NODE *currptr)
{
printf("\n before deletion : ");
display(currptr);
currptr=currptr->link;
printf("\n after deletion :");
display(currptr);
return(currptr);
}
void deletion_end(NODE *currptr)
{
NODE *temp;
NODE *start=currptr;
printf("\n before delete :");
display(currptr);
temp=currptr;
while(currptr->link!=NULL)
{
temp=currptr;
currptr=currptr->link;
}
temp->link=NULL;
printf("\n after deletion :");
display(start);
}
void deletion_pos(NODE *currptr)
{
int i,pos;
NODE *temp;
printf("\n before deletion :");
display(currptr);
printf("Enter the pos to inserted :");
scanf("%d",&pos);
for(i=1;i<pos;i++)
{
temp=currptr;
currptr=currptr->link;
}
temp->link=currptr->link;
}
No comments:
Post a Comment