• 数据结构与算法(C#实现)系列AVLTree(二)(外摘)


    数据结构与算法(C#实现)系列---AVLTree(二)
             //---------------override--------------------
             public override void AttachKey(object _obj)
             {
                  if(!IsEmpty())
                       throw new Exception("My:this node must be a empty tree node!");
                  this.key=_obj;
                  //产生一个degree长的数组,并将其初始化为空树
                  this.treeList=new ArrayList();
                  this.treeList.Capacity=(int)this.degree;
     
            
                  for(int i=0;i<this.degree;i++)
                  {
                       treeList.Add(new AVLTree());
                  }
                  //
                  this.height=0;
             }
             //在改动树的结构后平衡树
             public override void Balance()
             {
                  this.AdjustHeight();
                  //大于1则说明不平衡
                  if( Math.Abs(this.BalanceFactor())>1)
                  {
                       if(this.BalanceFactor()>0)
                       {
                           if (((AVLTree)this.Left).BalanceFactor()>0)
                                this.LLRotation();
                           else
                                this.LRRotation();
                       }                 
                       else
                       {
                           if (((AVLTree)this.Right).BalanceFactor()<0)
                                this.RRRotation();
                           else
                                this.RLRotation();
                       }
                  }
             }
     
     
            
             public int Height{get{return this.height;}}
            
    }
  • 相关阅读:
    Cookies
    一个完整的upstart脚本分析
    squid总结
    python递归读取目录列表
    python删除文件
    ubuntu切割mp3文件
    TP-LINK TL-WN725N V2 / rtl8188eu Linux驱动安装
    ubuntu启动脚本
    su对环境变量做了什么
    sudoers文件配置
  • 原文地址:https://www.cnblogs.com/HondaHsu/p/710797.html
Copyright © 2020-2023  润新知