有道笔试+面试

1. 堆删除的复杂度
2. 彩票中奖:共33个红球, 16蓝球, 给出中奖号码红1,3,4,7,12,13和蓝4, 只要至少有4
个红球猜中或猜中蓝球,就是中奖, 给出中奖概率:
3. 死锁的条件
4. 二叉搜索树删除根节点, 然后使用其左子树作为根节点,并且要维持二叉搜索树的要求
, 给出删除的代码.
5. 将1-9这个9个数分成3组,每组的3个数组成一个三位数,并且这些三位数都是完全平方
数, 给出程序代码.
6. 将IP地址转化为整型数.

int func(unsigned i){
    unsigned temp = i;
    temp = (temp & 0x55555555) + ((temp&0xaaaaaaaa)>>1);
    temp = (temp & 0x33333333) + ((temp&0xcccccccc)>>2);
    temp = (temp & 0x0f0f0f0f) + ((temp&0xf0f0f0f0)>>4);
    temp = (temp & 0xff00ff) + ((temp&0xff00ff00)>>8);
    temp = (temp & 0xffff) + ((temp&0xffff0000)>>16);
    return temp;
}

 

面试:
1. 将一个矩阵旋转90度.
2. 在完全二叉树中插入一个节点,仍然保持完全二叉树的性质.

满二叉树的判断.
int CompleteTest(pNode p){
    if(p->pLeft == NULL)          
        return 0;         // 如果p没有左子树,显然不是满二叉树   
    if(p->pRight == NULL)   
       return 0;// 如果p没有右子树,显然不是满二叉树
    if(isLeaf(p->pLeft) && isLeaf(p->pRight)) //如果p的左孩子是叶子节点,并且

右子树也是叶子节点
        return 1;

posted @ 2012-11-12 15:53  Mr.Rico  阅读(227)  评论(0编辑  收藏  举报