summaryrefslogtreecommitdiff
path: root/tests/TreeVisitor.java
diff options
context:
space:
mode:
authorbd-912 <bdunahu@colostate.edu>2024-03-27 13:09:08 -0600
committerbd-912 <bdunahu@colostate.edu>2024-03-27 13:09:08 -0600
commit8131ddc22af5d39114a55349d71bcdc467599187 (patch)
tree9aaa7b984f223b1b405bb1598982ea992eeba67d /tests/TreeVisitor.java
parente8af241aa57104d62c25c8bcbc2df76510998bf9 (diff)
Expand file structure, Vaporize skeleton
Diffstat (limited to 'tests/TreeVisitor.java')
-rw-r--r--tests/TreeVisitor.java374
1 files changed, 0 insertions, 374 deletions
diff --git a/tests/TreeVisitor.java b/tests/TreeVisitor.java
deleted file mode 100644
index 8debfe6..0000000
--- a/tests/TreeVisitor.java
+++ /dev/null
@@ -1,374 +0,0 @@
-// The classes are basically the same as the BinaryTree
-// file except the visitor classes and the accept method
-// in the Tree class
-
-class TreeVisitor{
- public static void main(String[] a){
- System.out.println(new TV().Start());
- }
-}
-
-class TV {
-
- public int Start(){
- Tree root ;
- boolean ntb ;
- int nti ;
- MyVisitor v ;
-
- root = new Tree();
- ntb = root.Init(16);
- ntb = root.Print();
- System.out.println(100000000);
- ntb = root.Insert(8) ;
- ntb = root.Insert(24) ;
- ntb = root.Insert(4) ;
- ntb = root.Insert(12) ;
- ntb = root.Insert(20) ;
- ntb = root.Insert(28) ;
- ntb = root.Insert(14) ;
- ntb = root.Print();
- System.out.println(100000000);
- v = new MyVisitor();
- System.out.println(50000000);
- nti = root.accept(v);
- System.out.println(100000000);
- System.out.println(root.Search(24));
- System.out.println(root.Search(12));
- System.out.println(root.Search(16));
- System.out.println(root.Search(50));
- System.out.println(root.Search(12));
- ntb = root.Delete(12);
- ntb = root.Print();
- System.out.println(root.Search(12));
-
- return 0 ;
- }
-
-}
-
-
-class Tree{
- Tree left ;
- Tree right;
- int key ;
- boolean has_left ;
- boolean has_right ;
- Tree my_null ;
-
-
-
- //Tree new_node ;
- //Tree current_node ;
- //Tree parent_node ;
-
- // boolean ntb ;
- //boolean cont ;
- //boolean found ;
- //int ifound ;
- // boolean is_root ;
- // int nti ;
- // int key_aux ;
- // int auxkey1 ;
- // int auxkey2 ;
-
- public boolean Init(int v_key){
- key = v_key ;
- has_left = false ;
- has_right = false ;
- return true ;
- }
-
- public boolean SetRight(Tree rn){
- right = rn ;
- return true ;
- }
-
- public boolean SetLeft(Tree ln){
- left = ln ;
- return true ;
- }
-
- public Tree GetRight(){
- return right ;
- }
-
- public Tree GetLeft(){
- return left;
- }
-
- public int GetKey(){
- return key ;
- }
-
- public boolean SetKey(int v_key){
- key = v_key ;
- return true ;
- }
-
- public boolean GetHas_Right(){
- return has_right ;
- }
-
- public boolean GetHas_Left(){
- return has_left ;
- }
-
- public boolean SetHas_Left(boolean val){
- has_left = val ;
- return true ;
- }
-
- public boolean SetHas_Right(boolean val){
- has_right = val ;
- return true ;
- }
-
- public boolean Compare(int num1 , int num2){
- boolean ntb ;
- int nti ;
-
- ntb = false ;
- nti = num2 + 1 ;
- if (num1 < num2) ntb = false ;
- else if (!(num1 < nti)) ntb = false ;
- else ntb = true ;
- return ntb ;
- }
-
- public boolean Insert(int v_key){
- Tree new_node ;
- boolean ntb ;
- Tree current_node ;
- boolean cont ;
- int key_aux ;
-
- new_node = new Tree();
- ntb = new_node.Init(v_key) ;
- current_node = this ;
- cont = true ;
- while (cont){
- key_aux = current_node.GetKey();
- if (v_key < key_aux){
- if (current_node.GetHas_Left())
- current_node = current_node.GetLeft() ;
- else {
- cont = false ;
- ntb = current_node.SetHas_Left(true);
- ntb = current_node.SetLeft(new_node);
- }
- }
- else{
- if (current_node.GetHas_Right())
- current_node = current_node.GetRight() ;
- else {
- cont = false ;
- ntb = current_node.SetHas_Right(true);
- ntb = current_node.SetRight(new_node);
- }
- }
- }
- return true ;
- }
-
- public boolean Delete(int v_key){
- Tree current_node ;
- Tree parent_node ;
- boolean cont ;
- boolean found ;
- boolean ntb ;
- boolean is_root ;
- int key_aux ;
-
- current_node = this ;
- parent_node = this ;
- cont = true ;
- found = false ;
- is_root = true ;
- while (cont){
- key_aux = current_node.GetKey();
- if (v_key < key_aux)
- if (current_node.GetHas_Left()){
- parent_node = current_node ;
- current_node = current_node.GetLeft() ;
- }
- else cont = false ;
- else
- if (key_aux < v_key)
- if (current_node.GetHas_Right()){
- parent_node = current_node ;
- current_node = current_node.GetRight() ;
- }
- else cont = false ;
- else {
- if (is_root)
- if (!current_node.GetHas_Right() &&
- !current_node.GetHas_Left() )
- ntb = true ;
- else
- ntb = this.Remove(parent_node,current_node);
- else ntb = this.Remove(parent_node,current_node);
- found = true ;
- cont = false ;
- }
- is_root = false ;
- }
- return found ;
- }
-
- public boolean Remove(Tree p_node, Tree c_node){
- boolean ntb ;
- int auxkey1 ;
- int auxkey2 ;
-
- if (c_node.GetHas_Left())
- ntb = this.RemoveLeft(p_node,c_node) ;
- else
- if (c_node.GetHas_Right())
- ntb = this.RemoveRight(p_node,c_node) ;
- else {
- auxkey1 = c_node.GetKey();
- auxkey2 = (p_node.GetLeft()).GetKey() ;
- if (this.Compare(auxkey1,auxkey2)) {
- ntb = p_node.SetLeft(my_null);
- ntb = p_node.SetHas_Left(false);
- }
- else {
- ntb = p_node.SetRight(my_null);
- ntb = p_node.SetHas_Right(false);
- }
- }
- return true ;
- }
-
- public boolean RemoveRight(Tree p_node, Tree c_node){
- boolean ntb ;
- while (c_node.GetHas_Right()){
- ntb = c_node.SetKey((c_node.GetRight()).GetKey());
- p_node = c_node ;
- c_node = c_node.GetRight() ;
- }
- ntb = p_node.SetRight(my_null);
- ntb = p_node.SetHas_Right(false);
- return true ;
- }
-
- public boolean RemoveLeft(Tree p_node, Tree c_node){
- boolean ntb ;
- while (c_node.GetHas_Left()){
- ntb = c_node.SetKey((c_node.GetLeft()).GetKey());
- p_node = c_node ;
- c_node = c_node.GetLeft() ;
- }
- ntb = p_node.SetLeft(my_null);
- ntb = p_node.SetHas_Left(false);
- return true ;
- }
-
-
- public int Search(int v_key){
- Tree current_node ;
- int ifound ;
- boolean cont ;
- int key_aux ;
-
- current_node = this ;
- cont = true ;
- ifound = 0 ;
- while (cont){
- key_aux = current_node.GetKey();
- if (v_key < key_aux)
- if (current_node.GetHas_Left())
- current_node = current_node.GetLeft() ;
- else cont = false ;
- else
- if (key_aux < v_key)
- if (current_node.GetHas_Right())
- current_node = current_node.GetRight() ;
- else cont = false ;
- else {
- ifound = 1 ;
- cont = false ;
- }
- }
- return ifound ;
- }
-
- public boolean Print(){
- boolean ntb ;
- Tree current_node ;
-
- current_node = this ;
- ntb = this.RecPrint(current_node);
- return true ;
- }
-
- public boolean RecPrint(Tree node){
- boolean ntb ;
-
- if (node.GetHas_Left()){
- ntb = this.RecPrint(node.GetLeft());
- } else ntb = true ;
- System.out.println(node.GetKey());
- if (node.GetHas_Right()){
- ntb = this.RecPrint(node.GetRight());
- } else ntb = true ;
- return true ;
- }
-
- public int accept(Visitor v){
- int nti ;
-
- System.out.println(333);
- nti = v.visit(this) ;
- return 0 ;
- }
-
-}
-
-
-
-class Visitor {
- Tree l ;
- Tree r ;
-
- public int visit(Tree n){
- int nti ;
-
- if (n.GetHas_Right()){
- r = n.GetRight() ;
- nti = r.accept(this) ; }
- else nti = 0 ;
-
- if (n.GetHas_Left()) {
- l = n.GetLeft();
- nti = l.accept(this) ; }
- else nti = 0 ;
-
- return 0;
- }
-
-}
-
-
-class MyVisitor extends Visitor {
-
- public int visit(Tree n){
- int nti ;
-
- if (n.GetHas_Right()){
- r = n.GetRight() ;
- nti = r.accept(this) ; }
- else nti = 0 ;
-
- System.out.println(n.GetKey());
-
- if (n.GetHas_Left()) {
- l = n.GetLeft();
- nti =l.accept(this) ; }
- else nti = 0 ;
-
- return 0;
- }
-
-}