注册 登录
编程论坛 数据结构与算法

怎么求二叉树每层上的节点数?

zx19880402 发布于 2010-07-04 17:42, 1200 次点击
如题,原理我明白,就是代码出不来,望高手不吝赐教!
3 回复
#2
zx198804022010-07-05 23:32
这就沉了?高手的没有?
#3
2010-07-06 06:47
我想,你还不算懂原理。
程序代码:

void levelorder(BiTree T)
{
    BiTree Queue[maxsize],p;
    int front,rear,last,first,level;
    front=rear=first=0;
    last=level=1;
    if(T)
    {
        Queue[rear++]=T;
        while(front<rear)
        {
            p=Queue[front++];
            if(p->lchild)
                Queue[rear++]=p->lchild;
            if(p->rchild)
                Queue[rear++]=p->rchild;
            if(front==last)
            {
                printf("level%2d:%d\n",level,last-first);
                level++;
                last=rear;
                first=front;
            }
        }
    }
    else
        printf("None");
}


[ 本帖最后由 LegendofMine 于 2010-7-6 06:56 编辑 ]
#4
zx198804022010-07-06 17:03
回复 3楼 LegendofMine
恩 刚学没多久 谢谢啦
1