示例#1
0
 public c_Node8 m_Node_new(int t_key,c_KernPair t_value,int t_color,c_Node8 t_parent)
 {
     bb_std_lang.pushErr();
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<364>";
     this.m_key=t_key;
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<365>";
     this.m_value=t_value;
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<366>";
     this.m_color=t_color;
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<367>";
     this.m_parent=t_parent;
     bb_std_lang.popErr();
     return this;
 }
示例#2
0
 public int p_RotateRight2(c_Node8 t_node)
 {
     bb_std_lang.pushErr();
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<271>";
     c_Node8 t_child=t_node.m_left;
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<272>";
     t_node.m_left=t_child.m_right;
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<273>";
     if((t_child.m_right)!=null){
         bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<274>";
         t_child.m_right.m_parent=t_node;
     }
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<276>";
     t_child.m_parent=t_node.m_parent;
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<277>";
     if((t_node.m_parent)!=null){
         bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<278>";
         if(t_node==t_node.m_parent.m_right){
             bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<279>";
             t_node.m_parent.m_right=t_child;
         }else{
             bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<281>";
             t_node.m_parent.m_left=t_child;
         }
     }else{
         bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<284>";
         m_root=t_child;
     }
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<286>";
     t_child.m_right=t_node;
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<287>";
     t_node.m_parent=t_child;
     bb_std_lang.popErr();
     return 0;
 }
示例#3
0
 public int p_InsertFixup2(c_Node8 t_node)
 {
     bb_std_lang.pushErr();
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<212>";
     while(((t_node.m_parent)!=null) && t_node.m_parent.m_color==-1 && ((t_node.m_parent.m_parent)!=null)){
         bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<213>";
         if(t_node.m_parent==t_node.m_parent.m_parent.m_left){
             bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<214>";
             c_Node8 t_uncle=t_node.m_parent.m_parent.m_right;
             bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<215>";
             if(((t_uncle)!=null) && t_uncle.m_color==-1){
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<216>";
                 t_node.m_parent.m_color=1;
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<217>";
                 t_uncle.m_color=1;
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<218>";
                 t_uncle.m_parent.m_color=-1;
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<219>";
                 t_node=t_uncle.m_parent;
             }else{
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<221>";
                 if(t_node==t_node.m_parent.m_right){
                     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<222>";
                     t_node=t_node.m_parent;
                     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<223>";
                     p_RotateLeft2(t_node);
                 }
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<225>";
                 t_node.m_parent.m_color=1;
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<226>";
                 t_node.m_parent.m_parent.m_color=-1;
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<227>";
                 p_RotateRight2(t_node.m_parent.m_parent);
             }
         }else{
             bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<230>";
             c_Node8 t_uncle2=t_node.m_parent.m_parent.m_left;
             bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<231>";
             if(((t_uncle2)!=null) && t_uncle2.m_color==-1){
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<232>";
                 t_node.m_parent.m_color=1;
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<233>";
                 t_uncle2.m_color=1;
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<234>";
                 t_uncle2.m_parent.m_color=-1;
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<235>";
                 t_node=t_uncle2.m_parent;
             }else{
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<237>";
                 if(t_node==t_node.m_parent.m_left){
                     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<238>";
                     t_node=t_node.m_parent;
                     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<239>";
                     p_RotateRight2(t_node);
                 }
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<241>";
                 t_node.m_parent.m_color=1;
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<242>";
                 t_node.m_parent.m_parent.m_color=-1;
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<243>";
                 p_RotateLeft2(t_node.m_parent.m_parent);
             }
         }
     }
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<247>";
     m_root.m_color=1;
     bb_std_lang.popErr();
     return 0;
 }
示例#4
0
 public int p_RotateLeft2(c_Node8 t_node)
 {
     bb_std_lang.pushErr();
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<251>";
     c_Node8 t_child=t_node.m_right;
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<252>";
     t_node.m_right=t_child.m_left;
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<253>";
     if((t_child.m_left)!=null){
         bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<254>";
         t_child.m_left.m_parent=t_node;
     }
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<256>";
     t_child.m_parent=t_node.m_parent;
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<257>";
     if((t_node.m_parent)!=null){
         bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<258>";
         if(t_node==t_node.m_parent.m_left){
             bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<259>";
             t_node.m_parent.m_left=t_child;
         }else{
             bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<261>";
             t_node.m_parent.m_right=t_child;
         }
     }else{
         bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<264>";
         m_root=t_child;
     }
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<266>";
     t_child.m_left=t_node;
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<267>";
     t_node.m_parent=t_child;
     bb_std_lang.popErr();
     return 0;
 }
示例#5
0
 public bool p_Add(int t_key,c_KernPair t_value)
 {
     bb_std_lang.pushErr();
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<61>";
     c_Node8 t_node=m_root;
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<62>";
     c_Node8 t_parent=null;
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<62>";
     int t_cmp=0;
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<64>";
     while((t_node)!=null){
         bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<65>";
         t_parent=t_node;
         bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<66>";
         t_cmp=p_Compare(t_key,t_node.m_key);
         bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<67>";
         if(t_cmp>0){
             bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<68>";
             t_node=t_node.m_right;
         }else{
             bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<69>";
             if(t_cmp<0){
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<70>";
                 t_node=t_node.m_left;
             }else{
                 bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<72>";
                 bb_std_lang.popErr();
                 return false;
             }
         }
     }
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<76>";
     t_node=(new c_Node8()).m_Node_new(t_key,t_value,-1,t_parent);
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<78>";
     if((t_parent)!=null){
         bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<79>";
         if(t_cmp>0){
             bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<80>";
             t_parent.m_right=t_node;
         }else{
             bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<82>";
             t_parent.m_left=t_node;
         }
         bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<84>";
         p_InsertFixup2(t_node);
     }else{
         bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<86>";
         m_root=t_node;
     }
     bb_std_lang.errInfo="C:/MonkeyXPro82b/modules/monkey/map.monkey<88>";
     bb_std_lang.popErr();
     return true;
 }