首页 > 代码库 > 函数引发二级叉的结算
函数引发二级叉的结算
bool is_left( int n )//是否为左节点
{
return n % 2 == 0;
}
bool is_right( int n )//是否为右节点
{
return 0 != n && ! is_left( n );
}
int father( int n )//父亲节点
{
if ( 1 == n ) return -1;
return n / 2;
}
int left_most( int n ) //得到节点n同层里最左边的点
{//这个你稍微推算一下就好,嗯
int res =1;
while ( n > 1 )
{
n /= 2;
res *= 2;
}
return ;
}
int common_ancestor( int n , int m ) //得到m和n的共同祖先,
{
if ( m == n )
return m;
if ( m != n && m == 0 || n == 0 )
return 0;//不存在共同祖先
return common_ancestor( father ( m ) , father( n ) ) ;
}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。