Tree1

import Node1;
public class Tree1 {
private int data;
private Tree1 left,right;
private boolean empty;
public Tree1() {
empty=true;
}
public Tree1(int d) {
empty=false;
data=d;
left=new Tree1();
right=new Tree1();
}
public Tree1(int d, Tree1 l, Tree1 r) {
empty=false;
data=d;
left=l;
right=r;
}
public boolean isEmpty() {
return empty;
}
public int info() {
return data;
}
public Tree1 left() {
return left;
}
public Tree1 right() {
return right;
}
public int abs(int in) {
if (in < 0) return -in;
else return in;
}
public int number() {
if (isEmpty()) return 0;
else return 1 + left().number() + right.number();
}
public void printPre() {
if (isEmpty())
return;
System.out.println(info());
left().printPre();
right().printPre();
}
public void printIn() {
if (isEmpty())
return;
left().printIn();
System.out.println(info());
right().printIn();
}
public void printPost() {
if (isEmpty())
return;
left().printPost();
right().printPost();
System.out.println(info());
}
public boolean isPerfectBal(){
if (isEmpty()) return true;
if (((abs(left().number() - right().number())) <= 1) &&
left().isPerfectBal() && right().isPerfectBal()) return true;
else return false;
}
public int maxDepth() {
int x1=0;
int x2=0;
if (left().isEmpty() && right().isEmpty()) return 1;
if (!right().isEmpty()){
x1=1 + right().maxDepth();
}
if (!left().isEmpty()){
x2=1 + left().maxDepth();
}
if (x1>=x2){
return x1;
}
return x2;
}
public Node1 pre() {
if (isEmpty())
return new Node1();
return left().pre().concat(info()).addTwo(right().pre());
}
public static void main(String[] arg) {
Tree1 t0=new Tree1();
Tree1 t1=new Tree1(1);
Tree1 t2=new Tree1(2);
Tree1 t3=new Tree1(3,t0,t1);
Tree1 t4=new Tree1(4,t2,t3);
System.out.print("Preorder insättning i lista ger: ");
Node1 n= t4.pre();
n.print();
System.out.println();
//System.out.println("Sum"+t4.sum());
System.out.println("Number ger: "+t4.number());
System.out.println("isPerfBal ger: "+t4.isPerfectBal());
System.out.println("Preorder utskrift av trädet: ");
t4.printPre();
System.out.println("Inorder utskrift av trädet: ");
t4.printIn();
System.out.println("Postorder utskrift av trädet: ");
t4.printPost();
System.out.println("Maximala djupet är: "+t4.maxDepth());
}
}

Tillbaks till huvudsidan

email: Alireza.Niai_nouri.2077@student.uu.se