您的位置:首页 > 职场人生

面试题22:从上往下打印二叉树

2013-07-02 21:37 197 查看
题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印,例如

        8

    6    10

5   7  9   11

依次打印:8,6,10,5,7,9,11

理解:层次遍历二叉树,借助队列,先将根入队列,根出列,打印根的值,并把根的左孩子和右孩子入队列,再出列,打印,入列(根的左孩子的  左孩子和右孩子),.......

二叉树结点的定义:

struct BinaryTreeNode

{

int  data;

BinaryTreeNode*   lchild;

BinaryTreeNode*   rchild;

}

伪代码:

void PrintTree(BinaryTreeNode* pRoot)
{
if(pRoot == NULL)
return;
SeQueue s;
InitQueue(s);
EnQueue(pRoot);
while(!QueueEmpty(s))
{
BinaryTreeNode *p;
p=DeQueue(s);
printf("%d ",p->data);
if(p->lchild)
EnQueue(p->lchild);
if(p->rchild)
EnQueue(p->rchild);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: