你写的第一条性质有问题,应该是第i层最多有2的(i-1)次方个结点。
对于第一个问题:
    你说的垂直算法应该是指这三种: 
1.中序遍历
    递归算法定义:   若二叉树非空,则依次执行如下操作:   (1)遍历左子树;   (2)访问根结点;   (3)遍历右子树。   
2.先序遍历
    递归算法定义:   若二叉树非空,则依次执行如下操作:   (1) 访问根结点;   (2) 遍历左子树;   (3) 遍历右子树。   
3.后序遍历
    递归算法定义:   若二叉树非空,则依次执行如下操作:   (1)遍历左子树;   (2)遍历右子树;   (3)访问根结点。 
    而你说的水平算法应该是指 :层序遍历
    二叉树的操作定义为:若二叉树为空,则退出,否则,按照树的结构,从根开始自上而下,自左而右访问每一个结点,从而实现对每一个结点的遍历。
    根据定义,应该就可以知道两者的区别了吧!
对于第二个问题:
    如果把你写的二叉树的三条性质搞清楚的话,就可以类推了!如果是K叉树的话,那么第二层最多有K个结点,第三层最多有k的平方个结点,类推的话,那么第i层最多有k的(i-1)个结点。
    深度为M的K叉树的话,最多应该有1+k^1+k^2+……+k^(M-1)=(1-k^M)/(1-k)
   (^这个符号表示幂运算)
对于第三个问题:
    网上有很多相关的算法,搜搜就有了!