您的位置:首页 > 其它

把二叉树打印成多行

2014-10-14 14:14 405 查看
需要用两个变量来记录下一层有多少个结点需要打印以及本次还有多少个结点未打印。

void levelPrint(Node *root){
if (root==NULL)
{
return ;
}

queue<Node *> q;
q.push(root);
//下一层有多少个结点需要打印
int i=0;
//还有多少个结点未打印
int j=1;
while (!q.empty())
{
Node * p=q.front();
q.pop();
--j;
printf("%d\t",p->data);
if (p->left!=NULL)
{
q.push(p->left);
++i;
}
if (p->right!=NULL)
{
q.push(p->right);
++i;
}
//按之字形打印
if (j==0){
printf("\n");
j=i;
i=0;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: