#include<stdio.h>
#include<stdlib.h>
struct num
{
int a;
struct num*plink;
};
struct list
{
int n;
struct num*pfirst;
};
struct list*pl1,*pl2;
struct num* create();
void insert(struct list*,struct num*);
void listcon(struct list*,struct list*);
void print(struct list*);
void createlist(struct list*);
int main()
{
pl1=(struct list*)malloc(sizeof(struct list));
pl2=(struct list*)malloc(sizeof(struct list));
if((!pl1)||(!pl2))
{
printf("no memory\n");
return 0;
}
else
{
pl1->n=0;
pl1->pfirst=NULL;
pl2->n=0;
pl2->pfirst=NULL;
printf("creating list for list 1\n");
printf("\n");
createlist(pl1);
printf("creating list for list 2\n");
printf("\n");
createlist(pl2);
listcon(pl1,pl2);
print(pl1);
printf("\n");
return 0;
}
}
struct num* create()
{
struct num *ptemp=NULL;
ptemp=(struct num*)malloc(sizeof(struct num));
if(!ptemp)
return NULL;
else
{
printf("enter integer\n");
scanf("%d",&(ptemp->a));
ptemp->plink=NULL;
return ptemp;
}
}
void insert(struct list*pl,struct num*pn)
{
struct num*ptemp=NULL;
if(!(pl->pfirst))
{
pl->pfirst=pn;
}
else
{
ptemp=pl->pfirst;
while(ptemp->plink)
{
ptemp=ptemp->plink;
}
ptemp->plink=pn;
}
return;
}
void createlist(struct list*ptr)
{
struct num*pnew=NULL;
int i,n=0;
printf("enter number of elements to be inserted\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
pnew=create();
insert(ptr,pnew);
}
return;
}
void listcon(struct list*l1,struct list*l2)
{
if((!l1)||(!l2))
{
printf("concatention cannot be done\n");
return;
}
else
{
struct num*ptemp=NULL,*ptrav=NULL,*plast=NULL;
plast=l1->pfirst;
ptrav=l2->pfirst;
while(plast->plink)
{
plast=plast->plink;
}
do
{
ptemp=(struct num*)malloc(sizeof(struct num));
if(!ptemp)
{
printf("concatention cannot be done\n");
return;
}
else
{
ptemp->a=ptrav->a;
ptemp->plink=NULL;
plast->plink=ptemp;
plast=plast->plink;
ptrav=ptrav->plink;
}
}while(ptrav);
}
}
void print(struct list*plk)
{
struct num*ptemp=NULL;
if(plk->pfirst==NULL)
{
printf("EMPTY LIST\n");
return;
}
else
{
ptemp=plk->pfirst;
while(ptemp!=NULL)
{
printf("%d\t",ptemp->a);
ptemp=ptemp->plink;
}
return;
}
}
#include<stdlib.h>
struct num
{
int a;
struct num*plink;
};
struct list
{
int n;
struct num*pfirst;
};
struct list*pl1,*pl2;
struct num* create();
void insert(struct list*,struct num*);
void listcon(struct list*,struct list*);
void print(struct list*);
void createlist(struct list*);
int main()
{
pl1=(struct list*)malloc(sizeof(struct list));
pl2=(struct list*)malloc(sizeof(struct list));
if((!pl1)||(!pl2))
{
printf("no memory\n");
return 0;
}
else
{
pl1->n=0;
pl1->pfirst=NULL;
pl2->n=0;
pl2->pfirst=NULL;
printf("creating list for list 1\n");
printf("\n");
createlist(pl1);
printf("creating list for list 2\n");
printf("\n");
createlist(pl2);
listcon(pl1,pl2);
print(pl1);
printf("\n");
return 0;
}
}
struct num* create()
{
struct num *ptemp=NULL;
ptemp=(struct num*)malloc(sizeof(struct num));
if(!ptemp)
return NULL;
else
{
printf("enter integer\n");
scanf("%d",&(ptemp->a));
ptemp->plink=NULL;
return ptemp;
}
}
void insert(struct list*pl,struct num*pn)
{
struct num*ptemp=NULL;
if(!(pl->pfirst))
{
pl->pfirst=pn;
}
else
{
ptemp=pl->pfirst;
while(ptemp->plink)
{
ptemp=ptemp->plink;
}
ptemp->plink=pn;
}
return;
}
void createlist(struct list*ptr)
{
struct num*pnew=NULL;
int i,n=0;
printf("enter number of elements to be inserted\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
pnew=create();
insert(ptr,pnew);
}
return;
}
void listcon(struct list*l1,struct list*l2)
{
if((!l1)||(!l2))
{
printf("concatention cannot be done\n");
return;
}
else
{
struct num*ptemp=NULL,*ptrav=NULL,*plast=NULL;
plast=l1->pfirst;
ptrav=l2->pfirst;
while(plast->plink)
{
plast=plast->plink;
}
do
{
ptemp=(struct num*)malloc(sizeof(struct num));
if(!ptemp)
{
printf("concatention cannot be done\n");
return;
}
else
{
ptemp->a=ptrav->a;
ptemp->plink=NULL;
plast->plink=ptemp;
plast=plast->plink;
ptrav=ptrav->plink;
}
}while(ptrav);
}
}
void print(struct list*plk)
{
struct num*ptemp=NULL;
if(plk->pfirst==NULL)
{
printf("EMPTY LIST\n");
return;
}
else
{
ptemp=plk->pfirst;
while(ptemp!=NULL)
{
printf("%d\t",ptemp->a);
ptemp=ptemp->plink;
}
return;
}
}
No comments:
Post a Comment