Data Structure Lab Final

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(Sy stem.in); h[size]=Integer.parseInt(din.readLine()); Data Structures Lab

Transcript of Data Structure Lab Final

Page 1: Data Structure Lab Final

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

Page 2: Data Structure Lab Final

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

Page 3: Data Structure Lab Final

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

Page 4: Data Structure Lab Final

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

Page 5: Data Structure Lab Final

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

Page 6: Data Structure Lab Final

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

Page 7: Data Structure Lab Final

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

Page 8: Data Structure Lab Final

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

Page 9: Data Structure Lab Final

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

Page 10: Data Structure Lab Final

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

Page 11: Data Structure Lab Final

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

Page 12: Data Structure Lab Final

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

Page 13: Data Structure Lab Final

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

Page 14: Data Structure Lab Final

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

Page 15: Data Structure Lab Final

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

Page 16: Data Structure Lab Final

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

Page 17: Data Structure Lab Final

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

Page 18: Data Structure Lab Final

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

Page 19: Data Structure Lab Final

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

Page 20: Data Structure Lab Final

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

Page 21: Data Structure Lab Final

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

Page 22: Data Structure Lab Final

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

Page 23: Data Structure Lab Final

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

Page 24: Data Structure Lab Final

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

Page 25: Data Structure Lab Final

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

Page 26: Data Structure Lab Final

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

Page 27: Data Structure Lab Final

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

Page 28: Data Structure Lab Final

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

Page 29: Data Structure Lab Final

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

Page 30: Data Structure Lab Final

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

Page 31: Data Structure Lab Final

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

Page 32: Data Structure Lab Final

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

Page 33: Data Structure Lab Final

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

Page 34: Data Structure Lab Final

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

Page 35: Data Structure Lab Final

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

Page 36: Data Structure Lab Final

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

Page 37: Data Structure Lab Final

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

Page 38: Data Structure Lab Final

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

Page 39: Data Structure Lab Final

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

Page 40: Data Structure Lab Final

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

Page 41: Data Structure Lab Final

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

Page 42: Data Structure Lab Final

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

Page 43: Data Structure Lab Final

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

Page 44: Data Structure Lab Final

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

Page 45: Data Structure Lab Final

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

Page 46: Data Structure Lab Final

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

Page 47: Data Structure Lab Final

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

Page 48: Data Structure Lab Final

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

Page 49: Data Structure Lab Final

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

Page 50: Data Structure Lab Final

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

Page 51: Data Structure Lab Final

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

Page 52: Data Structure Lab Final

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

Page 53: Data Structure Lab Final

8/3/2019 Data Structure Lab Final

http://slidepdf.com/reader/full/data-structure-lab-final 53/62

Page 54: Data Structure Lab Final

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

Page 55: Data Structure Lab Final

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

Page 56: Data Structure Lab Final

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

Page 57: Data Structure Lab Final

8/3/2019 Data Structure Lab Final

http://slidepdf.com/reader/full/data-structure-lab-final 57/62

Page 58: Data Structure Lab Final

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

Page 59: Data Structure Lab Final

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

Page 60: Data Structure Lab Final

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

Page 61: Data Structure Lab Final

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

Page 62: Data Structure Lab Final

8/3/2019 Data Structure Lab Final

http://slidepdf.com/reader/full/data-structure-lab-final 62/62

VVIT