data structure lab final
TRANSCRIPT
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 1/62
VVIT
PROGRAM:
import java.io.*;class heapalg
{
int maxsize=100,size;int[] h=new int[maxsize];
public int leftchild(int i)
{return 2*i;
}
public int rightchild(int i)
{return 2*i + 1;
}
public int parent(int i)
{return i/2;
} public boolean isleaf(int i)
{
return ((i<=size) && (i>size/2));}
public void swap(int i,int j)
{
int t;t=h[i];h[i]=h[j];h[j]=t;
} public void display(){
System.out.println("The heap elements are:"+"\n");
for(int i=1;i<=size;i++)System.out.println("\n"+h[i]);
}
public void insert()
{size++;
if(size>maxsize)
System.out.println("Heapfull");else
{
try{
System.out.println("Enter the element:");
DataInputStream din=new DataInputStream(System.in);h[size]=Integer.parseInt(din.readLine());
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 2/62
VVIT
}
catch(Exception e){}
insertelt(size);}
}
public void insertelt(int i){
while ((h[parent(i)]>h[i]))
{int par=parent(i);
swap(par,i);
i=par;
}}
public void delete()
{
if(size==0)System.out.println("Heapempty");
else{
System.out.println("The deleted min elt:"+h[1]);
h[1]=h[size--];
if(size!=0) percolate(1);
}
} public void percolate(int i)
{
while(!isleaf(i)){
int small=leftchild(i);
if( (small<size)&& h[small] > h[small+1])small+=1;
if(h[small] < h[i])
swap(small,i);
i=small;}
}
}class minheap
{
public static void main(String args[]) throws IOException{
int ch=0,cont=0;
heapalg h1=new heapalg();
do
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 3/62
VVIT
{
System.out.println("MIN HEAP 1.Insert 2.Delete Min");
DataInputStream din=new DataInputStream(System.in);try
{
ch=Integer.parseInt(din.readLine());}
catch(Exception e){}
if(ch==1){
h1.insert();
h1.display();
}else if(ch==2)
{
h1.delete();
h1.display();}
else{
System.out.println("Enter the correct choice");
}
System.out.println("press 1 to continue:");Try
{
cont=Integer.parseInt(din.readLine());}
catch(Exception e){}
}while(cont==1);
}
}
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 4/62
VVIT
OUTPUT:
MIN HEAP 1.Insert 2.Delete Min
1
Enter the element:
23
The heap elements are:
23
press 1 to continue:
1
MIN HEAP 1.Insert 2.Delete Min
1
Enter the element:
34
The heap elements are:
23
34
press 1 to continue:
1
MIN HEAP 1.Insert 2.Delete Min
1
Enter the element:
45
The heap elements are:
23
34
45
press 1 to continue:
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 5/62
VVIT
1
MIN HEAP 1.Insert 2.Delete Min
1
Enter the element:
56
The heap elements are:
23
34
45
56
press 1 to continue:
1
MIN HEAP 1.Insert 2.Delete Min
2
The deleted min elt:23
The heap elements are:
34
56
45
press 1 to continue:
1
MIN HEAP 1.Insert 2.Delete Min
2
The deleted min elt:34
The heap elements are:
45
56
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 6/62
VVIT
PROGRAM:
import java.io.*;class deapsalg
{
int maxsize=100,size;int[] h=new int[maxsize+1];
public int leftchild(int i)
{return 2*i;
}
public int rightchild(int i)
{return 2*i + 1;
}
public int parent(int i){
return i/2;
} public boolean isleaf(int i)
{
return ((i<=size) && (i>size/2));}
public void swap(int i,int j)
{
int t;t=h[i];h[i]=h[j];h[j]=t;
}
public void display(){
System.out.println("The deaps elements are:");
for(int i=1;i<=size+1;i++)System.out.println("\n"+h[i]);
}
public int MaxHeap(int i)
{int t=i;
while(t!=2 && t!=3)
t=t/2;if(t==2)
{
return 0;}
else
{return 1;
}
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 7/62
VVIT
}
public int MinPartner(int p)
{int powvalue=(int) ((Math.floor(Math.log(p)/Math.log(2)))-1);
int partner=p-(int)(Math.pow(2,powvalue));
return partner;}
public int MaxPartner(int p)
{int powvalue=(int) ((Math.floor(Math.log(p)/Math.log(2)))-1);
int partner=p+(int)(Math.pow(2,powvalue));
if(partner>size+1)
partner/=2;return partner;
public void MinInsert(int i)
}
{while (parent(i)!=1 && (h[parent(i)]>h[i]))
{int par=parent(i);
swap(par,i);
i=par;
} public void MaxInsert(int i)
}
{while (parent(i) !=1 && (h[parent(i)]<h[i]))
{
int par=parent(i);swap(par,i);
i=par;
}}
public void insert()
{
int newelt=0;size++;
if(size>maxsize)
System.out.println("Deap full");else
{
try{
System.out.println("Enter the element:");
DataInputStream din=new DataInputStream(System.in);
newelt=Integer.parseInt(din.readLine());
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 8/62
VVIT
}
catch(Exception e){}
if(size==1){
h[2]=newelt;
return;}
int p=size+1;
h[p]=newelt;switch(MaxHeap(p))
{
case 1:
int partner=MinPartner(p);if(h[partner]>h[p])
{
swap(p,partner);
MinInsert(partner);}
elseMaxInsert(p);
break;
case 0:
partner=MaxPartner(p);if(h[partner]<h[p])
{
swap(p,partner);MaxInsert(partner);
}
elseMinInsert(p);
break;
default:System.out.println("ERROR");
}
}
} public void deletemin()
{
if(size==0)System.out.println("Deap empty");
else
{System.out.println("The deleted min elt:"+ h[2]);
int i;
int p=size+1;
int t=h[p];
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 9/62
VVIT
size--;
int small;
for( i=2;2*i<=size+1;i=small){
if(h[rightchild(i)]<h[leftchild(i)])
small=rightchild(i);else
small=leftchild(i);
h[i]=h[small];}
p=i; t
h[p]=t;
for(i=2;i<=size+1;i++){
switch(MaxHeap(i))
{
case 1:int partner=MinPartner(i);
if(h[partner]>h[i]){
swap(i,partner);
MinInsert(partner);
}else
MaxInsert(i);
break;case 0:
partner=MaxPartner(i);
if(h[partner]<h[i]){
swap(i,partner);
MaxInsert(partner);}
else
MinInsert(i);
break;default:
System.out.println("ERROR");
}}
}
} public void deletemax()
{
if(size==0)
System.out.println("Deap empty");
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 10/62
VVIT
else
{
System.out.println("The deleted max elt:"+ h[3]);int i;
int p=size+1;
int t=h[p];size--;
int big;
for( i=3;2*i<=size+1;i=big){
if(h[rightchild(i)]>h[leftchild(i)])
big=rightchild(i);
else big=leftchild(i);
h[i]=h[big];
}
p=i;h[p]=t;
for(i=2;i<=size+1;i++){
switch(MaxHeap(i))
{
case 1:int partner=MinPartner(i);
if(h[partner]>h[i])
{swap(i,partner);
MinInsert(partner);
}else
MaxInsert(i);
break;case 0:
partner=MaxPartner(i);
if(h[partner]<h[i])
{swap(i,partner);
MaxInsert(partner);
}else
MinInsert(i);
break;default:
System.out.println("ERROR");
}
}
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 11/62
VVIT
}
}
} public class deaps
{
public static void main(String args[]) throws IOException{
int ch=0,cont=0;
deapsalg h1=new deapsalg();do
{
System.out.println("DEAPs 1.Insert 2.Delete Min 3.Delete Max");
DataInputStream din=new DataInputStream(System.in);try
{
ch=Integer.parseInt(din.readLine());
}catch(Exception e){}
if(ch==1){
h1.insert();
h1.display();
}else if(ch==2)
{
h1.deletemin();h1.display();
}
else if(ch==3){
h1.deletemax();
h1.display();}
else
{
System.out.println("Enter the correct choice");}
System.out.println("press 1 to continue:");
try{
cont=Integer.parseInt(din.readLine());
}catch(Exception e){}
}while(cont==1);
}
}
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 12/62
VVIT
OUTPUT:
DEAPs 1.Insert 2.Delete Min 3.Delete Max1
Enter the element:
20The deaps elements are:
0
20 press 1 to continue:
1
DEAPs 1.Insert 2.Delete Min 3.Delete Max
1Enter the element:
5
The deaps elements are:
05
20 press 1 to continue:
1
DEAPs 1.Insert 2.Delete Min 3.Delete Max1
Enter the element:
3
The deaps elements are:0
3205
press 1 to continue:
1DEAPs 1.Insert 2.Delete Min 3.Delete Max
1
Enter the element:
7The deaps elements are:
0
320
5
7 press 1 to continue:
1
DEAPs 1.Insert 2.Delete Min 3.Delete Max1
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 13/62
VVIT
Enter the element:
11
The deaps elements are:0
3
205
7
11 press 1 to continue:
1
DEAPs 1.Insert 2.Delete Min 3.Delete Max1
Enter the element:
55
The deaps elements are:0
355
5
7
1120
press 1 to continue:
1DEAPs 1.Insert 2.Delete Min 3.Delete Max
1
Enter the element:77
The deaps elements are:
03
77
5
755
20
11 press 1 to continue:
1
DEAPs 1.Insert 2.Delete Min 3.Delete Max1
Enter the element:
88
The deaps elements are:
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 14/62
VVIT
0
3
885
7
7720
11
55 press 1 to continue:
1
DEAPs 1.Insert 2.Delete Min 3.Delete Max
1Enter the element:
17
The deaps elements are:
03
885
7
77
2011
55
17 press 1 to continue:
1
DEAPs 1.Insert 2.Delete Min 3.Delete Max1
Enter the element:
1The deaps elements are:
0
1
885
3
7720
11
5517
7
press 1 to continue:
1
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 15/62
VVIT
DEAPs 1.Insert 2.Delete Min 3.Delete Max
1
Enter the element:100
The deaps elements are:
01
100
53
88
20
1155
17
7
77 press 1 to continue:
1DEAPs 1.Insert 2.Delete Min 3.Delete Max
2
The deleted min elt:1
The deaps elements are:0
3
1005
7
8877
11
5517
20
press 1 to continue:
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 16/62
VVIT
PROGRAM:
import java.io.*;class node
{
public int data; public node LC,RC;
public int shortest;
}class minleftist
{
node root = null;
public void insert(){
int newelt=0;
try
{System.out.println("Enter the element:");
DataInputStream din=new DataInputStream(System.in);newelt=Integer.parseInt(din.readLine());
}
catch(Exception e){}node temp = new node();
temp.data=newelt;
temp.LC=temp.RC=null;
temp.shortest=1;if(root==null)
root=temp;elseroot=meld(root,temp);
}
public node meld(node a, node b){
if(a.data > b.data)
{
node t;t=a;
a=b;
b=t;}
if(a.RC==null)
a.RC=b;else
a.RC=meld(a.RC,b);
if((a.LC==null) || (a.LC.shortest < a.RC.shortest)){
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 17/62
VVIT
node t=new node();
t=a.LC;
a.LC=a.RC;a.RC=t;
}
if(a.RC==null)a.shortest=1;
else
a.shortest=a.RC.shortest+1;return a;
}
public void remove()
{System.out.println("Deleted element is "+root.data+"\n");
root=meld(root.LC,root.RC);
}
public void display(){
if(root==null)System.out.println("EMPTY");
else
{
System.out.println("\nIn Order");dispin(root);
}
} public void dispin(node currentnode)
{
if(currentnode!=null){ dispin(currentnode.LC);
System.out.println(currentnode.data+" "+"SHORTEST "+currentnode.shortest);
dispin(currentnode.RC);}
}
};
class LeftistTree{
public static void main(String args[ ])throws IOException
{int ch=0,cont=0;
minleftist m = new minleftist();
do{
System.out.println("LEFTIST TREE 1. Insert 2. Delete");
DataInputStream din = new DataInputStream(System.in);
try
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 18/62
VVIT
{
ch=Integer.parseInt(din.readLine());
}catch(Exception e){}
if(ch==1)
{m.insert();
m.display();
}else if(ch==2)
{
m.remove();
m.display();}
else
{
System.out.println("Enter the correct choice");}
System.out.println("press 1 to continue:");Try
{
cont=Integer.parseInt(din.readLine());
}catch(Exception e){}
}
while(cont==1);}
}
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 19/62
VVIT
OUTPUT:
LEFTIST TREE 1. Insert 2. Delete1
Enter the element:
50In Order
50 SHORTEST 1
press 1 to continue:1
LEFTIST TREE 1. Insert 2. Delete
1Enter the element:
8
In Order
50 SHORTEST 1
8 SHORTEST 1 press 1 to continue:
1LEFTIST TREE 1. Insert 2. Delete
1
Enter the element:13
In Order
50 SHORTEST 1
8 SHORTEST 213 SHORTEST 1
press 1 to continue:1LEFTIST TREE 1. Insert 2. Delete
1
Enter the element:11
In Order
50 SHORTEST 18 SHORTEST 2
13 SHORTEST 1
11 SHORTEST 1
press 1 to continue:1
LEFTIST TREE 1. Insert 2. Delete
1Enter the element:
20
In Order 13 SHORTEST 1
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 20/62
VVIT
11 SHORTEST 2
20 SHORTEST 1
8 SHORTEST 250 SHORTEST 1
press 1 to continue:
1LEFTIST TREE 1. Insert 2. Delete
1
Enter the element:18
In Order
13 SHORTEST 1
11 SHORTEST 220 SHORTEST 1
8 SHORTEST 2
50 SHORTEST 1
18 SHORTEST 1 press 1 to continue:
1LEFTIST TREE 1. Insert 2. Delete
1
Enter the element:
2In Order
13 SHORTEST 1
11 SHORTEST 220 SHORTEST 1
8 SHORTEST 2
50 SHORTEST 118 SHORTEST 1
2 SHORTEST 1
press 1 to continue:1
LEFTIST TREE 1. Insert 2. Delete
1
Enter the element:7
In Order
13 SHORTEST 111 SHORTEST 2
20 SHORTEST 1
8 SHORTEST 250 SHORTEST 1
18 SHORTEST 1
2 SHORTEST 2
7 SHORTEST 1
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 21/62
VVIT
press 1 to continue:
1
LEFTIST TREE 1. Insert 2. Delete2
Deleted element is 2
In Order 13 SHORTEST 1
11 SHORTEST 2
20 SHORTEST 18 SHORTEST 2
50 SHORTEST 1
18 SHORTEST 1
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 22/62
VVIT
PROGRAM:
import java.io.*;class node
{
public int data; public node LC,RC;
public int bf;
}class avltree
{
node root = null;
public boolean insert(){
int newelt=0;
try
{System.out.println("Enter the element:");
DataInputStream din=new DataInputStream(System.in);newelt=Integer.parseInt(din.readLine());
}
catch(Exception e){}if(root==null)
{
node y=new node();
y.data=newelt;y.bf=0;
y.LC=null;y.RC=null;root=y;
return true;
}node f,a,q,p;
node b,c;
int d;
node y=new node(); boolean found, unbalanced;
f=null;
a=root; p=root;
q=null;
found=false;while (p!=null && found!=true)
{
if(p.bf!=0) {a=p;f=q;}if(newelt<p.data){q=p;p=p.LC;
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 23/62
VVIT
}
else if(newelt>p.data){q=p;p=p.RC;
}else
{
y=p;found=true;}
}
if(found==false){
y.data=newelt;
y.bf=0;
y.LC=null;y.RC=null;
if(newelt<q.data)
q.LC=y;
elseq.RC=y;
if(newelt >a.data){
p=a.RC;b=p;d=-1;
}
else{
p=a.LC;b=p;d=1;
}while(p!=y)
{
if(newelt > p.data){
p.bf=-1;p=p.RC;
}else
{
p.bf=1;p=p.LC;
}}
unbalanced=true;
if((a.bf==0)||((a.bf+d)==0)){
a.bf+=d;unbalanced=false;
}if(unbalanced==true)
{
if(d==1)
{
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 24/62
VVIT
if(b.bf==1)
{
System.out.println("LL imbalance");a.LC=b.RC;
b.RC=a;
a.bf=0; b.bf=0;
}
else{
System.out.println("LR imbalance");
c=b.RC;
b.RC=c.LC;a.LC=c.RC;
c.LC=b;
c.RC=a;
switch(c.bf){
case 1:a.bf=-1;
b.bf=0;
break;
case -1:a.bf=0;
b.bf=1;
break;case 0:
a.bf=0;
b.bf=0; break;
}
c.bf=0; b=c;
}
}
else{
if(b.bf==-1)
{System.out.println("RR imbalance");
a.RC=b.LC;
b.LC=a;a.bf=0;
b.bf=0;
}
else
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 25/62
VVIT
{
System.out.println("RL imbalance");
c=b.LC; b.LC=c.RC;
a.RC=c.LC;
c.RC=b;c.LC=a;
switch(c.bf)
{case 1:
a.bf=0;
b.bf=-1;
break;case -1:
a.bf=1;
b.bf=0;
break;case 0:
a.bf=0; b.bf=0;
break;
}
c.bf=0; b=c;
}
if(f==null)}
root=b;
else if(a==f.LC)f.LC=b;
else if(a==f.RC)
f.RC=b;}
return true;
return false;
}}
public void display()
{if(root==null)
System.out.println("EMPTY");
else{
System.out.println("\nIn Order");
dispin(root);
}
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 26/62
VVIT
}
public void dispin(node currentnode)
{if(currentnode!=null)
{
dispin(currentnode.LC);System.out.println(currentnode.data+" "+"BF "+currentnode.bf);
dispin(currentnode.RC);
}}
};
class AVLTreeImp
{ public static void main(String args[ ])throws IOException
{
int ch=0,cont=0;
avltree a = new avltree();do
{System.out.println("AVLTREES 1. Insert ");
DataInputStream din = new DataInputStream(System.in);
try
{ch=Integer.parseInt(din.readLine());
}
catch(Exception e){}if(ch==1)
{
boolean y=true;y=a.insert();
a.display();
if(y==false)System.out.println("Data already exists");
}
else
{System.out.println("Enter the correct choice");
}
System.out.println("press 1 to continue:");try
{
cont=Integer.parseInt(din.readLine());}
catch(Exception e){}
}
while(cont==1); } }
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 27/62
VVIT
OUTPUT:
AVLTREES 1. Insert1
Enter the element:
3In Order
3 BF 0
press 1 to continue:1
AVLTREES 1. Insert
1
Enter the element:2
In Order
2 BF 0
3 BF 1 press 1 to continue:
1AVLTREES 1. Insert
1
Enter the element:1
LL imbalance
In Order
1 BF 02 BF 0
3 BF 0 press 1 to continue:1
AVLTREES 1. Insert
1Enter the element:
4
In Order
1 BF 02 BF -1
3 BF -1
4 BF 0 press 1 to continue:
1
AVLTREES 1. Insert1
Enter the element:
5RR imbalance
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 28/62
VVIT
In Order
1 BF 0
2 BF -13 BF 0
4 BF 0
5 BF 0 press 1 to continue:
1
AVLTREES 1. Insert1
Enter the element:
6
RR imbalance
In Order
1 BF 0
2 BF 03 BF 0
4 BF 05 BF -1
6 BF 0
press 1 to continue:
1AVLTREES 1. Insert
1
Enter the element:7
RR imbalance
In Order 1 BF 0
2 BF 0
3 BF 04 BF 0
5 BF 0
6 BF 0
7 BF 0 press 1 to continue:
1
AVLTREES 1. Insert1
Enter the element:
16In Order
1 BF 0
2 BF 0
3 BF 0
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 29/62
VVIT
4 BF -1
5 BF 0
6 BF -17 BF -1
16 BF 0
press 1 to continue:1
AVLTREES 1. Insert
1Enter the element:
15
RL imbalance
In Order 1 BF 0
2 BF 0
3 BF 0
4 BF -15 BF 0
6 BF -17 BF 0
15 BF 0
16 BF 0
press 1 to continue:1
AVLTREES 1. Insert
1Enter the element:
14
RL imbalance
In Order
1 BF 02 BF 0
3 BF 0
4 BF -1
5 BF 06 BF 1
7 BF 0
14 BF 015 BF 0
16 BF 0
press 1 to continue:1
AVLTREES 1. Insert
1
Enter the element:
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 30/62
VVIT
13
RR imbalance
In Order 1 BF 0
2 BF 0
3 BF 04 BF 0
5 BF 0
6 BF 17 BF 0
13 BF 0
14 BF 1
15 BF 116 BF 0
press 1 to continue:
1
AVLTREES 1. Insert1
Enter the element:12
LL imbalance
In Order
1 BF 02 BF 0
3 BF 0
4 BF 05 BF 0
6 BF 1
7 BF 012 BF 0
13 BF 0
14 BF 015 BF 1
16 BF 0
press 1 to continue:
1AVLTREES 1. Insert
1
Enter the element:11
LL imbalanceIn Order
1 BF 0
2 BF 0
3 BF 0
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 31/62
VVIT
4 BF 0
5 BF 0
6 BF 17 BF 0
11 BF 0
12 BF 113 BF 0
14 BF 0
15 BF 016 BF 0
press 1 to continue:
1
AVLTREES 1. Insert1
Enter the element:
10
LL imbalanceIn Order
1 BF 02 BF 0
3 BF 0
4 BF 0
5 BF 06 BF 1
7 BF 0
10 BF 011 BF 0
12 BF 0
13 BF 014 BF 0
15 BF 0
16 BF 0 press 1 to continue:
1
AVLTREES 1. Insert
1Enter the element:
8
In Order 1 BF 0
2 BF 0
3 BF 04 BF 0
5 BF 0
6 BF 1
7 BF -1
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 32/62
VVIT
8 BF 0
10 BF 1
11 BF 112 BF 0
13 BF 114 BF 0
15 BF 0
16 BF 0 press 1 to continue:
1
AVLTREES 1. Insert
1Enter the element:
9
LR imbalance
In Order 1 BF 0
2 BF 03 BF 0
4 BF 0
5 BF 0
6 BF 17 BF -1
8 BF 0
9 BF 010 BF 0
11 BF 1
12 BF 013 BF 1
14 BF 0
15 BF 016 BF 0
press 1 to continue:
1
AVLTREES 1. Insert1
Enter the element:
16In Order
1 BF 0
2 BF 03 BF 0
4 BF 0
5 BF 0
6 BF 1
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 33/62
VVIT
7 BF -1
8 BF 0
9 BF 010 BF 0
11 BF 1
12 BF 013 BF 1
14 BF 0
15 BF 016 BF 0
Data already exists
press 1 to continue:
12
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 34/62
VVIT
PROGRAM:
import java.io.*;class bnode
{
int data1,data2; bnode lptr,mptr,rptr,parent;
public void bnode()
{this.data1=this.data2=0;
this.lptr=this.mptr=this.rptr=this.parent=null;
}
}class btree
{
bnode root=null;
bnode p,p1; bnode prev;
void insert(int ele){
bnode temp=new bnode();
temp.data1=ele;if(root==null)
{
root=temp;
}else
{ p1=root;while(p1!=null)
{
prev=p1;if(temp.data1<p1.data1)
p1=p1.lptr;
else if((temp.data1>p1.data1) &&(temp.data1<p1.data2))
p1=p1.mptr;else
p1=p1.rptr;
} p1=prev;
while(p1!=null)
{if(p1.data2==0)
{
if(temp.data1<p1.data1){
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 35/62
VVIT
int t=p1.data1;
p1.data1=temp.data1;
p1.data2=t; p1.lptr=temp.lptr;
if(temp.lptr!=null)
temp.lptr.parent=p1; p1.mptr=temp.rptr;
if(temp.rptr!=null)
temp.rptr.parent=p1;}
else
break;
else if((p1.data1!=0) && (p1.data2!=0))}
{
p1=split(temp,p1);
temp=p1; p1=p1.parent;
} p1.data2=temp.data1;
p1.mptr=temp.lptr;
if(temp.lptr!=null)
temp.lptr.parent=p1; p1.rptr=temp.rptr;
if(temp.rptr!=null)
temp.rptr.parent=p1;temp.parent=p1.parent;
}
}display(root);
bnode split(bnode t,bnode p)
}{
bnode n1=null;
bnode n2=null;
if(t.data1<p.data1){
if(p.mptr!=null)
n1=p.mptr;if(p.rptr!=null)
n2=p.rptr;
p.lptr=new bnode(); p.lptr=t;
t.parent=p;
p.mptr=null;
p.rptr=new bnode();
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 36/62
VVIT
p.rptr.data1=p.data2;
p.rptr.lptr=n1;
if(n1!=null) p.rptr.lptr.parent=p.rptr;
p.rptr.rptr=n2;
if(n2!=null) p.rptr.rptr.parent=p.rptr;
p.rptr.parent=p;
p.data2=0;}
else if((t.data1>p.data1) && (t.data1<p.data2))
{
if(p.lptr!=null)n1=p.lptr;
if(p.rptr!=null)
n2=p.rptr;
p.lptr=new bnode(); p.lptr.data1=p.data1;
p.lptr.parent=p; p.data1=t.data1;
p.lptr.lptr=n1;
if(n1!=null)
p.lptr.lptr.parent=p.lptr; p.lptr.rptr=t.lptr;
if(t.lptr!=null)
p.lptr.rptr.parent=p.lptr; p.rptr=new bnode();
p.rptr.data1=p.data2;
p.rptr.rptr=n2;if(n2!=null)
p.rptr.rptr.parent=p.rptr;
p.rptr.lptr=t.rptr;if(t.rptr!=null)
p.rptr.lptr.parent=p.rptr;
p.rptr.parent=p;
p.data2=0; p.mptr=null;
}
else{
if(p.lptr!=null)
n1=p.lptr;if(p.mptr!=null)
n2=p.mptr;
p.lptr=new bnode();
p.lptr.data1=p.data1;
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 37/62
VVIT
p.lptr.parent=p;
p.mptr=null;
p.lptr.lptr=n1;if(n1!=null)
p.lptr.lptr.parent=p.lptr;
p.lptr.rptr=n2;if(n2!=null)
p.lptr.rptr.parent=p.lptr;
p.data1=p.data2; p.data2=0;
p.rptr=new bnode();
p.rptr=t;
p.rptr.parent=p;return p;
}
}
void display(bnode temp){
if(temp!=null){
display(temp.lptr);
display(temp.mptr);
display(temp.rptr);System.out.println("data1::"+temp.data1+" data2::"+temp.
data2+" Address::"+temp+" parent::"+temp.parent);
}}
}
class btrees{
public static void main(String[] args)throws IOException
{System.out.println("B-Trees");
DataInputStream in=new DataInputStream(System.in);
btree bt=new btree();
int x,ch;do
{
System.out.println("Enter the element");x=Integer.parseInt(in.readLine());
bt.insert(x);
System.out.println("To continue...press 1");ch=Integer.parseInt(in.readLine());
}while(ch==1);
}
}
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 38/62
VVIT
OUTPUT:
B-TreesEnter the element
52
data1::52 data2::0 Address::bnode@923e30 parent::nullTo continue...press 1
1
Enter the element45
data1::45 data2::52 Address::bnode@923e30 parent::null
To continue...press 1
1Enter the element
89
data1::45 data2::0 Address::bnode@130c19b parent::bnode@923e30
data1::89 data2::0 Address::bnode@1f6a7b9 parent::bnode@923e30data1::52 data2::0 Address::bnode@923e30 parent::null
To continue...press 11
Enter the element
12data1::12 data2::45 Address::bnode@130c19b parent::bnode@923e30
data1::89 data2::0 Address::bnode@1f6a7b9 parent::bnode@923e30
data1::52 data2::0 Address::bnode@923e30 parent::null
To continue...press 11
Enter the element56data1::12 data2::45 Address::bnode@130c19b parent::bnode@923e30
data1::56 data2::89 Address::bnode@1f6a7b9 parent::bnode@923e30
data1::52 data2::0 Address::bnode@923e30 parent::nullTo continue...press 1
1
Enter the element
1data1::1 data2::0 Address::bnode@7d772e parent::bnode@923e30
data1::45 data2::0 Address::bnode@11b86e7 parent::bnode@923e30
data1::56 data2::89 Address::bnode@1f6a7b9 parent::bnode@923e30data1::12 data2::52 Address::bnode@923e30 parent::null
To continue...press 1
1Enter the element
32
data1::1 data2::0 Address::bnode@7d772e parent::bnode@923e30data1::32 data2::45 Address::bnode@11b86e7 parent::bnode@923e30
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 39/62
VVIT
data1::56 data2::89 Address::bnode@1f6a7b9 parent::bnode@923e30
data1::12 data2::52 Address::bnode@923e30 parent::null
To continue...press 11
Enter the element
25data1::1 data2::0 Address::bnode@7d772e parent::bnode@35ce36
data1::25 data2::0 Address::bnode@757aef parent::bnode@35ce36
data1::12 data2::0 Address::bnode@35ce36 parent::bnode@923e30data1::45 data2::0 Address::bnode@d9f9c3 parent::bnode@9cab16
data1::56 data2::89 Address::bnode@1f6a7b9 parent::bnode@9cab16
data1::52 data2::0 Address::bnode@9cab16 parent::bnode@923e30
data1::32 data2::0 Address::bnode@923e30 parent::nullTo continue...press 1
1
Enter the element60
data1::1 data2::0 Address::bnode@7d772e parent::bnode@35ce36data1::25 data2::0 Address::bnode@757aef parent::bnode@35ce36
data1::12 data2::0 Address::bnode@35ce36 parent::bnode@923e30
data1::45 data2::0 Address::bnode@d9f9c3 parent::bnode@9cab16
data1::56 data2::0 Address::bnode@1a46e30 parent::bnode@9cab16data1::89 data2::0 Address::bnode@3e25a5 parent::bnode@9cab16
data1::52 data2::60 Address::bnode@9cab16 parent::bnode@923e30
data1::32 data2::0 Address::bnode@923e30 parent::nullTo continue...press 1
1
Enter the element83
data1::1 data2::0 Address::bnode@7d772e parent::bnode@35ce36
data1::25 data2::0 Address::bnode@757aef parent::bnode@35ce36data1::12 data2::0 Address::bnode@35ce36 parent::bnode@923e30
data1::45 data2::0 Address::bnode@d9f9c3 parent::bnode@9cab16
data1::56 data2::0 Address::bnode@1a46e30 parent::bnode@9cab16
data1::83 data2::89 Address::bnode@3e25a5 parent::bnode@9cab16data1::52 data2::60 Address::bnode@9cab16 parent::bnode@923e30
data1::32 data2::0 Address::bnode@923e30 parent::null
To continue...press 112
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 40/62
VVIT
PROGRAM:
import java.io.*;class node
{
public int tag,level;starts with 1
public int data;
public node LC,RC,par;}
class trie
{ public node cptr;
public node root=null;
public node find(int key)
{
int item=key;node temp=root;
while(temp!=null){
cptr=temp;
if(temp.tag==1){
if((item & 1)==0)
{
temp=temp.LC;item=item >> 1;
}else{
temp=temp.RC;
item=item >> 1;}
}
else{
if(key==temp.data)
{
return temp;}
else break;
}}
return null;
} public void insert()
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 41/62
VVIT
{
int key=0;
try{
System.out.println("Enter the element:");
DataInputStream din=new DataInputStream(System.in);key=Integer.parseInt(din.readLine());
}
catch(Exception e){}if(root==null)
{
root=new node();
root.data=key;root.tag=0;
root.level=1;
root.par=null; root.LC=null; root.RC=null;
}else
{{
node temp=find(key);
if(temp==null)
temp=cptr;if(temp.tag==0)
{
node n1=new node();node n2=new node();
temp.tag=1;
n1.tag=0;n2.tag=0;int k1=temp.data;temp.data=0;
int k2=key;
int kk1;n1.data=k1;
n2.data=k2;
int lv=1;
while ( (k1 & 1 ) ==(k2 & 1 )){
kk1=k1;
k1=k1 >> 1;k2=k2 >> 1;
if(lv>=temp.level)
{node n3=new node();
n3.tag=1;
if ( (kk1 & 1)==0)
{
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 42/62
VVIT
temp.LC=n3;
temp.RC=null;
n3.level=temp.level+1;}
else
{temp.RC=n3;
temp.LC=null;
n3.level=temp.level+1;}
n3.par=temp;
temp=n3;
lv++;}
else
lv++;
}if( (k1 & 1)==0)
{temp.LC=n1;
temp.RC=n2;
n1.level=n2.level=temp.level+1;
}else
{
temp.LC=n2;temp.RC=n1;
n1.level=n2.level=temp.level+1;
n1.par=temp;}
n2.par=temp;
}else
{
node n1=new node();
n1.tag=0;n1.data=key;
if(temp.LC==null)
temp.LC=n1;else
temp.RC=n1;
n1.level=temp.level+1;n1.par=temp;
}
}
System.out.println("Element already exists");
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 43/62
VVIT
else
}
public void display(){
if(root==null)
System.out.println("EMPTY");else
{
System.out.println("\nIn Order");dispin(root);
}
}
public void dispin(node currentnode){
if(currentnode!=null)
{
dispin(currentnode.LC);System.out.println(currentnode.data+" "+"LEVEL-
"+"TAG-"+currentnode.tag);dispin(currentnode.RC);
}
}
};class TrieImp
{
public static void main(String args[ ])throws IOException{
int ch=0,cont=0;
trie t = new trie();do
{
System.out.println("TRIES 1. Insert ");DataInputStream din = new DataInputStream(System.in);
try
{
ch=Integer.parseInt(din.readLine());}
catch(Exception e){}
if(ch==1){
t.insert();
t.display();}
else
{
System.out.println("Enter the correct choice");
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 44/62
VVIT
}
System.out.println("press 1 to continue:");
try{
cont=Integer.parseInt(din.readLine());
}catch(Exception e){}
}
while(cont==1);}
}
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 45/62
VVIT
OUTPUT:
TRIES 1. Insert1
Enter the element:
1232In Order
1232 LEVEL- 1 TAG-0
press 1 to continue:1
TRIES 1. Insert
1
Enter the element:4451
In Order
1232 LEVEL- 2 TAG-0
0 LEVEL- 1 TAG-14451 LEVEL- 2 TAG-0
press 1 to continue:1
TRIES 1. Insert
1Enter the element:
1243
In Order
1232 LEVEL- 2 TAG-00 LEVEL- 1 TAG-1
0 LEVEL- 2 TAG-14451 LEVEL- 5 TAG-00 LEVEL- 4 TAG-1
1243 LEVEL- 5 TAG-0
0 LEVEL- 3 TAG-1 press 1 to continue:
1
TRIES 1. Insert
1Enter the element:
1015
In Order 1232 LEVEL- 2 TAG-0
0 LEVEL- 1 TAG-1
0 LEVEL- 2 TAG-14451 LEVEL- 5 TAG-0
0 LEVEL- 4 TAG-1
1243 LEVEL- 5 TAG-00 LEVEL- 3 TAG-1
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 46/62
VVIT
1015 LEVEL- 4 TAG-0
press 1 to continue:
1TRIES 1. Insert
1
Enter the element:1942
1942 LEVEL- 3 TAG-0
0 LEVEL- 1 TAG-10 LEVEL- 2 TAG-1
4451 LEVEL- 5 TAG-0
0 LEVEL- 4 TAG-1
1243 LEVEL- 5 TAG-00 LEVEL- 3 TAG-1
1015 LEVEL- 4 TAG-0
press 1 to continue:
1TRIES 1. Insert
1Enter the element:
1941
In Order
1232 LEVEL- 3 TAG-00 LEVEL- 2 TAG-1
1942 LEVEL- 3 TAG-0
0 LEVEL- 1 TAG-11941 LEVEL- 3 TAG-0
0 LEVEL- 2 TAG-1
4451 LEVEL- 5 TAG-00 LEVEL- 4 TAG-1
1243 LEVEL- 5 TAG-0
0 LEVEL- 3 TAG-11015 LEVEL- 4 TAG-0
press 1 to continue:
1
TRIES 1. Insert1
Enter the element:
1055In Order
1232 LEVEL- 3 TAG-0
0 LEVEL- 2 TAG-11942 LEVEL- 3 TAG-0
0 LEVEL- 1 TAG-1
1941 LEVEL- 3 TAG-0
0 LEVEL- 2 TAG-1
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 47/62
VVIT
4451 LEVEL- 5 TAG-0
0 LEVEL- 4 TAG-1
1243 LEVEL- 5 TAG-00 LEVEL- 3 TAG-1
1015 LEVEL- 5 TAG-0
0 LEVEL- 4 TAG-11055 LEVEL- 5 TAG-0
press 1 to continue:
1TRIES 1. Insert
1
Enter the element:
1243Element already exists
In Order
1232 LEVEL- 3 TAG-0
0 LEVEL- 2 TAG-14451 LEVEL- 5 TAG-0
0 LEVEL- 4 TAG-11243 LEVEL- 5 TAG-0
0 LEVEL- 3 TAG-1
1015 LEVEL- 5 TAG-0
0 LEVEL- 4 TAG-11055 LEVEL- 5 TAG-0
press 1 to continue:
12
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 48/62
VVIT
PROGRAM :
import java.io.*;class quicksortalg
{
int noe;int[] a=new int[100];
public void sort()
{try
{
System.out.println("Enter the number of elements:");DataInputStream din=new DataInputStream(System.in);
noe=Integer.parseInt(din.readLine());
System.out.println("Enter the elements:");
for(int i=1;i<=noe;i++)
a[i]=Integer.parseInt(din.readLine());System.out.println("The array:");
display();}
catch(Exception e){}
quick(1,noe);}
public void swap(int i,int j)
{
int t;t=a[i];a[i]=a[j];a[j]=t;
} public void quick(int first,int last){
if(first<last)
{int pivot=first;
int i=first;
int j=last;while(i<j)
{
while(a[pivot]>=a[i] && i<last) i++;
while(a[pivot]<=a[j] && j>first) j--;if(i<j) swap(i,j);
}
swap(pivot,j);quick(first,j-1);
quick(j+1,last);
}}
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 49/62
VVIT
public void display()
{
for(int i=1;i<=noe;i++)System.out.println(a[i]+"\n");
}
class quicksort}
{
public static void main(String args[])throws IOException{
quicksortalg q1=new quicksortalg();
q1.sort();
System.out.println("The sorted array:");q1.display();
}
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 50/62
VVIT
OUTPUT :
Enter the number of elements:5
Enter the elements:
296
1
4563
The array:
2
961
45
63
The sorted array:1
245
63
96
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 51/62
VVIT
PROGRAM:
import java.io.*;class convexhullalg
{
int x[],y[],n; boolean status[];
void insert()
{try
{
DataInputStream in=new DataInputStream(System.in);
System.out.println("Enter number of points:");n=Integer.parseInt(in.readLine());
x=new int[n];
y=new int[n];
status=new boolean[n];System.out.println("Enter x and y coordinates for ");
for(int i=0;i<n;i++){
System.out.println("point "+(i+1));
x[i]=Integer.parseInt(in.readLine());y[i]=Integer.parseInt(in.readLine());
status[i]=false;
}
}catch(Exception e){}
sort();check(0,'L');check(0,'H');
display();
}void sort()
{
for(int i=0;i<n-1;i++)
{for(int j=i+1;j<n;j++)
if((x[i]>x[j]) || ((x[i]==x[j]) && (y[i]>y[j])))
swap(i, j);}
}
void swap(int i,int j){
int temp=x[i];
x[i]=x[j];x[j]=temp;
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 52/62
VVIT
temp=y[i];
y[i]=y[j];
y[j]=temp;}
void display()
{System.out.println("Boundary points are");
for(int i=0;i<n;i++)
if(status[i]==true)System.out.println("("+x[i]+", "+y[i]+")");
}
void check(int p,char c)
{double slope=0,degree=0,deg=0;
int next=0;
status[p]=true;
for(int i=p+1;i<n;i++){
try{
slope=(double)(x[i]-x[p])/(double)(y[i]-y[p]);
degree=Math.toDegrees(Math.atan(slope));
if(degree < 0)degree+=180;
}
catch(Exception e){
degree=90;
}if(i==p+1)
{
deg=degree;next=i;
}
else
{if((c=='L' && deg>degree)||(c!='L' && deg<degree)
||(degree==deg && x[i]<x[next]))
{deg=degree;
next=i;
}}
}
if(next!=0)
check(next,c);
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 53/62
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 54/62
VVIT
OUTPUT:
Enter number of points:4
Enter x and y coordinates for
point 12
6
point 27
8
point 3
14
point 4
2
10Boundary points are
(1, 4)(2, 10)
(7, 8)
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 55/62
VVIT
PROGRAM:
import java.io.*;class objects
{
int weight;int profit;
}
public class knapsack {
static int N,W;
static objects st[];
public static void main(String args[])throws IOException{
DataInputStream in=new DataInputStream(System.in);
System.out.println("Enter the number of objects:");
N=Integer.parseInt(in.readLine());System.out.println("Enter the maximum weight sack can take:");
W=Integer.parseInt(in.readLine());st=new objects[N+1];
st[0]=new objects();st[0].weight=st[0].profit=0;
for(int i=1;i<=N;i++){
st[i]=new objects();
System.out.println("\nFor object "+i);
System.out.print("Enter profit: ");st[i].profit=Integer.parseInt(in.readLine());
System.out.print("Enter Weight: ");st[i].weight=Integer.parseInt(in.readLine());}
int [][] opt=new int[N+1][W+1];
boolean [][] sol= new boolean[N+1][W+1];for(int n=1;n<=N;n++)
for(int w=1;w<=W;w++)
{
int option1=opt[n-1][w];int option2=-1;
if(st[n].weight<=w)
option2=st[n].profit+opt[n-1][w-st[n].weight];opt[n][w]=Math.max(option1, option2);
sol[n][w]=(option2 > option1);
} boolean take[]=new boolean[N+1];
int prof=0;
for(int n=N,w=W;n>0;n--)if(sol[n][w])
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 56/62
VVIT
{
take[n]=true;
w=w-st[n].weight; prof+=st[n].profit;
}
elsetake[n]=false;
System.out.println("\nThe optimal solution is:");
System.out.println("Item \t weight \t profit");for(int n=1;n<=N;n++)
if(take[n])
System.out.println(n+" \t "+st[n].weight+" \t\t "+st[n].profit);
System.out.println("\n Total profit:"+prof);}
}
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 57/62
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 58/62
VVIT
PROGRAM :
import java.io.*;class gcoloring
{
int a[][]=new int[10][10];int x[]=new int[10];
int m, n;
void read(){
DataInputStream in=new DataInputStream(System.in);
try
{System.out.println("Enter number of vertices in the graph");
n=Integer.parseInt(in.readLine());
System.out.println("Enter 1 if there is an edge Otherwise 0");
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)
{System.out.println("between "+i+" and "+j);
a[i][j]=Integer.parseInt(in.readLine());
}
}catch(Exception e){}
System.out.println("Given adjacency matrix is ");
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
System.out.print(a[i][j]+"\t");System.out.println();
}
for(int i=1;i<=n;i++)x[i]=0;
for(int i=2;i<n;i++)
{
m=i;System.out.println("All possible combinations for m = "+i+" are ");
mcoloring(1);
}}
void mcoloring(int k)
{do
{
nextvalue(k);
if(x[k]==0) break;
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 59/62
VVIT
if(k==n)
{
for(int i=1;i<=n;i++)System.out.print(x[i]+"\t");
System.out.println();
}else
mcoloring(k+1);
}while(true);}
void nextvalue(int k)
{
int j;do
{
x[k]=(x[k]+1)%(m+1);
if(x[k]==0) return;for(j=1;j<=n;j++)
{if((a[k][j]==1) && (x[k]==x[j]))
break;
}
if(j==n+1) return;}while(true);
}
}class Graphcoloring
{
public static void main(String args[ ])throws IOException{
gcoloring g=new gcoloring();
g.read();}
}
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 60/62
VVIT
OUTPUT:
Enter number of vertices in the graph4
Enter 1 if there is an edge Otherwise 0
between 1 and 10
between 1 and 2
1 between 1 and 3
0
between 1 and 4
1 between 2 and 1
1
between 2 and 2
0 between 2 and 3
1 between 2 and 4
0
between 3 and 10
between 3 and 2
1
between 3 and 30
between 3 and 41 between 4 and 1
1
between 4 and 20
between 4 and 3
1
between 4 and 40
Given adjacency matrix is
0 1 0 11 0 1 0
0 1 0 1
1 0 1 0
All possible combinations for m = 2 are
1 2 1 22 1 2 1
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 61/62
VVIT
All possible combinations for m = 3 are
1 2 1 2
1 2 1 3
1 2 3 21 3 1 2
1 3 1 3
1 3 2 32 1 2 1
2 1 2 3
2 1 3 1
2 3 1 32 3 2 1
2 3 2 3
3 1 2 1
3 1 3 13 1 3 2
3 2 1 23 2 3 1
3 2 3 2
Data Structures Lab
8/3/2019 Data Structure Lab Final
http://slidepdf.com/reader/full/data-structure-lab-final 62/62
VVIT