Γεια σου, Θέλω, λοιπόν, να δημιουργήσετε ένα νέο δέντρο που είναι βασικά η τομή (μαθηματικό ορισμό της τομής) 2 δίνεται δυαδικά δένδρα αναζήτησης. Έχω μια μέθοδο που εκτυπώνει το σύνολο των κόμβων σε ένα συγκεκριμένο επίπεδο του δέντρου και έχω μια μέθοδος που μπορεί να βρει το βάθος των tree.I είμαι επικόλληση δουλειά μου μέχρι στιγμής και αν είναι ατελής και είμαι κολλημένος με το logic.Help θα εκτιμηθεί.
public static Bst<Customer> intersect (Bst<Customer> a, Bst<Customer> b){
Bst<Customer> result = new Bst<Customer>();
BTNode<Customer> cur1;
BTNode<Customer> cur2;
BTNode<Customer> cur3;
cur1=a.root;
cur2=b.root;
cur3=result.root;
int Resultdepth;
if(a.maxDepth()<b.maxDepth())
Resultdepth=a.maxDepth();
else
Resultdepth=b.maxDepth();
if(cur1==null || cur2==null){ // Handeling the root case intially
result = null;
}
else
cur3.item.set_account_id(cur1.item.get_accountid()+ cur2.item.get_accountid());
cur1=cur1.left;
cur2=cur2.left;
cur3=cur3.left;
while(<some check>){
}
return result;
}
public int maxDepth(){
return mD(root);
}
int mD(BTNode<E> node){
if (node==null) {
return(0);
}
else {
int lDepth = mD(node.left);
int rDepth = mD(node.right);
// use the larger + 1
return(Math.max(lDepth, rDepth) + 1);
}
}
// for printing the nodes at a particular level and giving the starting level
public void PrintAt(BTNode<E> cur, int level, int desiredLevel) {
if (cur == null) {
return;
}
if (level == desiredLevel) {
System.out.print(cur.item.toString() + );
}
else {
PrintAt(cur.left, level+1, desiredLevel);
PrintAt(cur.right, level+1, desiredLevel);
}
}













