Lab
8 Solutions, ESC101, 2004-2005 Semester-II
1.
import java.io.*;
class Permutation
{
public static void PermutationHelper(int [] prefix,
int []toPermute)
{
if(toPermute.length==0)
{
System.out.println();
for(int
i=0;i<prefix.length;i++)
System.out.print(prefix[i]+ " ");
return;
}
int cnt,i;
int prefix1[]=new
int[prefix.length + 1];
int toPermute1[]=new
int[toPermute.length - 1];
for(i=0;i<prefix.length;i++)
prefix1[i]=prefix[i];
for(int
j=0;j<toPermute.length;j++)
{
cnt=0;
prefix1[i]=toPermute[j];
for(int
k=0;k<toPermute.length;k++)
{
if(k==j)
continue;
toPermute1[cnt++]=toPermute[k];
}
PermutationHelper(prefix1,toPermute1);
}
}
public static void main(String args[]) throws
IOException
{
InputStreamReader in=new
InputStreamReader(System.in);
BufferedReader br=new
BufferedReader(in);
System.out.println("Enter the
Number");
String s=br.readLine();
int no=Integer.parseInt(s);
int prefix[]=new int[0];
int toPermute[]=new int[no];
for(int i=0;i<no;i++)
toPermute[i]=i+1;
PermutationHelper(prefix,toPermute);
}
}
2.
import java.io.*;
public class SetOperation
{
static int output[];
public static void setOperation(int set1[],int
set2[],String arg)
{
int temp[]=new
int[set1.length+set2.length];
boolean flag;
if(arg.compareTo("Union")==0)
{
int cnt=0;
for(int
i=0;i<set2.length;i++)
{
flag=true;
for(int j=0;j<set1.length;j++)
{
if(set2[i]==set1[j])
{
flag=false;
break;
}
}
if(flag)
{
temp[cnt++]=set2[i];
}
}
for(int
i=0;i<set1.length;i++)
temp[cnt++]=set1[i];
output=new
int[cnt];
for(int
i=0;i<cnt;i++)
output[i]=temp[i];
}
else
if(arg.compareTo("Intersection")==0)
{
int
cnt=0;
for(int i=0;i
< set1.length;i++)
{
flag=false;
for(int j=0;j<set2.length;j++)
{
if(set1[i]==set2[j])
{
flag=true;
break;
}
}
if(flag)
{
temp[cnt++]=set1[i];
}
}
output=new
int[cnt];
for(int
i=0;i<cnt;i++)
output[i]=temp[i];
}
else
if(arg.compareTo("Difference")==0)
{
int cnt=0;
for(int
i=0;i<set1.length;i++)
{
flag=true;
for(int j=0;j<set2.length;j++)
{
if(set1[i]==set2[j])
{
flag=false;
break;
}
}
if(flag)
{
temp[cnt++]=set1[i];
}
}
output=new
int[cnt];
for(int
i=0;i<cnt;i++)
output[i]=temp[i];
}
else
System.out.println("Undefied Operation");
}
public static void main(String args[] ) throws
IOException
{
InputStreamReader in=new
InputStreamReader(System.in);
BufferedReader br=new
BufferedReader(in);
System.out.println("Enter Set1
size");
String s=br.readLine();
int s1=Integer.parseInt(s);
int set1[]=new int[s1];
System.out.println("Enter Uniqe
Elements");
for(int i=0;i<s1;i++)
{
s=br.readLine();
set1[i]=Integer.parseInt(s);
}
System.out.println("Enter Set2
size");
s=br.readLine();
int s2=Integer.parseInt(s);
int set2[]=new int[s2];
System.out.println("Enter Uniqe
Elements ");
for(int i=0;i<s2;i++)
{
s=br.readLine();
set2[i]=Integer.parseInt(s);
}
System.out.println("Enter
Operation to be Performed Union/Intersection/Difference");
s=br.readLine();
setOperation(set1,set2,s);
for(int
i=0;i<output.length;i++)
System.out.print(output[i] + " ");
System.out.println();
}
}