Tuesday, 26 September 2017

C PROGRAM TO PERFORM CONCATENATION OF TWO SINGLY LINKED LISTS

#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;
}
}


C PROGRAM TO FIND 2'S COMPLEMENT

#include<string.h>
#include<stdio.h>
int main()
{
  int n,k,c=0,g='1',i,l=0;
printf("enter size");
scanf("%d",&k);
getchar();
char s[k];
char s1[k];
printf("enter string\n");
gets(s);
n=strlen(s);
for(i=0;i<n;i++)
{
if(s[i]=='0' || s[i]=='1')
        c++;
else
l++;
}
if(c!=n)
printf("no binary digits");
else
{
for(i=0;i<n;i++)
{
if(s[i]=='0')
       s1[i]='1';
else
s1[i]='0';
}
//puts(s1);
for(i=n-1;i>=0;i--)
{
          if(s1[i]=='1'&& g=='1')
{
      s[i]='0';
}
else if(s1[i]=='0'&& g=='1')
{
s[i]='1';
g='0';
}
else
{
s[i]=s1[i];
}
}
s[n]='\0';
printf("2's complement is:");
puts(s);
}
return 0;
}
OUTPUT:

Monday, 25 September 2017

C PROGRAM TO PERFORM MERGE SORT

#include<stdio.h>
int a[100];
int t[100];
void merge(int low,int high);
void sort(int l,int h);
int main()
{
int i,n;
printf("enter size");
scanf("%d",&n);
printf("enter elements\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
merge(0,n-1);
printf("sorted array is ");
for(i=0;i<n;i++)
{
printf("%d\t",a[i]);
}
return 0;
}
void merge(int low,int high)
{
int mid;
if(low<high)
{
mid=(low+high)/2;
merge(low,mid);
merge(mid+1,high);
sort(low,high);
}
return;
}
void sort(int l,int h)
{
int mid=(l+h)/2;
int l1=l,l2=mid+1,i=l;
for(;l1<=mid&&l2<=h;i++)
{
if(a[l1]<a[l2])
{
t[i]=a[l1];
l1++;
}
else
{
t[i]=a[l2];
l2++;
}

}
while(l1<=mid)
{
t[i]=a[l1];
l1++;
i++;
}
while(l2<=h)
{
t[i]=a[l2];
l2++;
i++;
}
for(i=l;i<=h;i++)
{
a[i]=t[i];
}
return;

}
OUT PUT:



FERMATS LITTLE THEOREM

import java.math.*; import java.io.*; import java.util.Scanner; public class Main { public static void main(String[] args) {    Sca...