2. Perfect Binary Tree
package Perfectbinarytree;
public class Perfect_binary_tree {
static class Tugun{
int kalit;
Tugun chapildiz,ongildiz;
}
static int chuqurlik(Tugun tugun){
int c=0;
while(tugun!=null){
c++;
tugun=tugun.chapildiz;
}
return c;
}
static boolean isp(Tugun ildiz,int c,int daraja){
if(ildiz==null)return true;
if(ildiz.chapildiz==null&&ildiz.ongildiz==null)return (c==daraja+1);
if(ildiz.chapildiz==null||ildiz.ongildiz==null)return false;
return isp(ildiz.chapildiz,c,daraja+1)&&isp(ildiz.ongildiz,c,daraja+1);
}
static boolean isP(Tugun ildiz){
int c=chuqurlik(ildiz);
return isp(ildiz,c,0);
}
static Tugun yangiTugun(int k){
Tugun tugun=new Tugun();
tugun.kalit=k;
tugun.ongildiz=null;
tugun.chapildiz=null;
return tugun;
}
public static void main(String[] args) {
Tugun ildiz=null;
ildiz=yangiTugun(70);
ildiz.chapildiz=yangiTugun(6);
ildiz.ongildiz=yangiTugun(35);
ildiz.chapildiz.chapildiz=yangiTugun(1);
ildiz.chapildiz.ongildiz=yangiTugun(90);
ildiz.ongildiz.chapildiz=yangiTugun(40);
ildiz.ongildiz.ongildiz=yangiTugun(81);
ildiz.chapildiz.chapildiz.chapildiz=yangiTugun(88);
ildiz.chapildiz.chapildiz.ongildiz=yangiTugun(74);
ildiz.chapildiz.ongildiz.chapildiz=yangiTugun(14);
ildiz.chapildiz.ongildiz.ongildiz=yangiTugun(85);
ildiz.ongildiz.chapildiz.chapildiz=yangiTugun(43);
ildiz.ongildiz.chapildiz.ongildiz=yangiTugun(75);
ildiz.ongildiz.ongildiz.chapildiz=yangiTugun(58);
ildiz.ongildiz.ongildiz.ongildiz=yangiTugun(83);
ildiz.chapildiz.chapildiz.chapildiz.chapildiz=yangiTugun(23);
ildiz.chapildiz.chapildiz.chapildiz.ongildiz=yangiTugun(37);
if(isP(ildiz)==true){
System.out.println("Bu daraxt 'perfect binary tree'");
}
else{
System.out.println("Bu daraxt 'perfect binary tree' emas");
}
}
}
3. Complete Binary Tree
package Completebinarytree;
class Tugun{
int data;
Tugun chapildiz,ongildiz;
Tugun(int element){
data=element;
chapildiz=ongildiz=null;
}
}
public class Complete_binary_tree {
Tugun ildiz;
int tugunlarsoni(Tugun ildiz){
if(ildiz==null){
System.out.println("soni:"+ildiz);
return (0);
}
else{
System.out.println("soni1:"+ildiz);
return (1+tugunlarsoni(ildiz.chapildiz)+tugunlarsoni(ildiz.ongildiz));
}
}
boolean tekshirish(Tugun ildiz, int index, int tugunsini){
System.out.println(ildiz+" "+index+" "+tugunsini);
if(ildiz==null)return true;
if(index>=tugunsini){
return false;
}
return (tekshirish(ildiz.chapildiz,2*index+1,tugunsini))&&(tekshirish(ildiz.ongildiz,2*index+2,tugunsini));
}
public static void main(String[] args) {
Complete_binary_tree daraxt= new Complete_binary_tree();
daraxt.ildiz=new Tugun(70);
daraxt.ildiz.chapildiz=new Tugun(6);
daraxt.ildiz.ongildiz=new Tugun(35);
daraxt.ildiz.chapildiz.chapildiz=new Tugun(1);
daraxt.ildiz.chapildiz.ongildiz=new Tugun(90);
daraxt.ildiz.ongildiz.chapildiz=new Tugun(40);
daraxt.ildiz.ongildiz.ongildiz=new Tugun(81);
daraxt.ildiz.chapildiz.chapildiz.chapildiz=new Tugun(88);
daraxt.ildiz.chapildiz.chapildiz.ongildiz=new Tugun(74);
daraxt.ildiz.chapildiz.ongildiz.chapildiz=new Tugun(14);
daraxt.ildiz.chapildiz.ongildiz.ongildiz=new Tugun(85);
daraxt.ildiz.ongildiz.chapildiz.chapildiz=new Tugun(43);
daraxt.ildiz.ongildiz.chapildiz.ongildiz=new Tugun(75);
daraxt.ildiz.ongildiz.ongildiz.chapildiz=new Tugun(58);
daraxt.ildiz.ongildiz.ongildiz.ongildiz=new Tugun(83);
daraxt.ildiz.chapildiz.chapildiz.chapildiz.chapildiz=new Tugun(23);
daraxt.ildiz.chapildiz.chapildiz.chapildiz.ongildiz=new Tugun(37);
int tugun_soni= daraxt.tugunlarsoni(daraxt.ildiz);
System.out.println("pp"+tugun_soni);
int index=0;
if(daraxt.tekshirish(daraxt.ildiz,index,tugun_soni))
System.out.println("Bu daraxt 'complete binary tree'");
else{
System.out.println("bu daraxt 'complete binary tree' emas");
}
}
}
Do'stlaringiz bilan baham: |